I. Techniki wielowersyjne sterowania współbieżnością



Podobne dokumenty
Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia).

TECHNIKI STEROWANIA WSPÓŁBIEŻNOŚCIĄ. I. Wybrane problemy współbieżności. Utracona aktualizacja (lost update)

Bazy danych. Andrzej Łachwa, UJ, /15

Transakcje. (c) Instytut Informatyki Politechniki Poznańskiej

Tadeusz Pankowski

Bazy danych 2. Wykład 6 Transakcje

Zarządzanie transakcjami

Algorytmy zarządzania współbieżnym wykonywaniem transakcji część II

Wielowersyjne metody synchronizacji transakcji

070 TRANSAKCJE. Prof. dr hab. Marek Wisła

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu):

Plan wykładu. Przykład. Wprowadzenie BAZY DANYCH. Transakcje Hurtownie danych

1 Przetwarzanie transakcyjne Cechy transakcji Rozpoczęcie i zakończenie Punkty bezpieczeństwa... 3

Bazy danych wykład dziewiaty Transakcje. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

przykłady problemów; realizacja dostaw części od producenta do klienta:

Algorytmy zarządzania współbieżnym wykonywaniem transakcji część I

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Dazy Banych. Michał Rusnarczyk

Przechowywanie danych

Bazy danych 6a. Transakcje. P. F. Góra

BAZY DANYCH. Transakcje. opracowanie: Michał Lech

Rozdział 17. Zarządzanie współbieżnością zadania

Ćwiczenie 3. Współbieżność i transakcje

Bazy danych 9. SQL Klucze obce Transakcje

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach

Właściwości transakcji

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Rozproszone bazy danych. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

PODSTAWY BAZ DANYCH Wykład 6 4. Metody Implementacji Baz Danych

Rozproszone i obiektowe systemy baz danych

Fizyczna struktura bazy danych w SQL Serwerze

Plan ćwiczenia. Rozdział 17. zarządzania współbieżnością. Dostęp współbieżny a dostęp spójny. Spójność bazy danych

Administracja i programowanie pod Microsoft SQL Server 2000

Bazy danych w sterowaniu

Bazy danych. Dr inż. Paweł Kasprowski

Pojęcie bazy danych. Funkcje i możliwości.

Bazy danych 9. Klucze obce Transakcje

Bazy danych 9. Klucze obce Transakcje. P. F. Góra

Zarządzanie obiektami bazy danych Oracle11g

Bazy danych 2. Wykład 1

Wykłady z przedmiotu Podstawy baz danych Transakcje dr hab. prof. nadzw. Tadeusz Antczak. Transakcje

Tworzenie kopii zapasowej baz danych programu Lotus Connections 3.0 (oraz 3.0.1)

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7

Izolacje transakcji oraz anomalie. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

1 Instalowanie i uaktualnianie serwera SQL Server

Bazy danych. Plan wykładu. Czynniki wpływające na fizyczny projekt bazy danych. bazy danych

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska

Plan ćwiczenia. Rozdział 17 Zarządzanie współbieżnością. Dostęp współbieżny a dostęp spójny. Spójność bazy danych

Tadeusz Pankowski

Transakcje Wykład z bazy danych dla studen

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Wprowadzenie (1) Przetwarzanie transakcyjne. Wprowadzenie (2) Problemy przygotowania aplikacji

Ile rekordów będzie zawierała tabela przy założeniu, że na początku była pusta?

Wykłady z przedmiotu Podstawy baz danych Transakcje dr hab. prof. UŁ. Tadeusz Antczak. Transakcje

Oracle PL/SQL. Paweł Rajba.

Wymagania dotyczące oprogramowania bazodanowego

Replikacja bazy danych polega na kopiowaniu i przesyłaniu danych lub obiektów bazodanowych między serwerami oraz na zsynchronizowaniu tych danych w

Spis treści. Przedmowa

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

PODSTAWY BAZ DANYCH Wykład 9

Stan globalny. Krzysztof Banaś Systemy rozproszone 1

Moduł kontrakty służy do przechowywania danych o zakontraktowanych cenach zakupu od wybranych kontrahentów.

Zadanie 1. Suma silni (11 pkt)

GIT. Rozproszony system kontroli wersji

Kopie bezpieczeństwa NAPRAWA BAZ DANYCH

Rozdział 1 Wprowadzenie do baz danych. (c) Instytut Informatyki Politechniki Poznańskiej 1

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Przetwarzanie transakcyjne

Lokalna kopia bioinformatycznego serwera obliczeniowego jako wysokowydajne środowisko obliczeniowe

Systemy Rozproszone. Zagadnienia do egzaminu.

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

:11 BD_1_W9

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

SystimPlus. Dokumentacja (FAQ) dla wersji: v

Zadania semestralne. Programowanie obiektowe sem. II, lato 2014/2015

Porównanie systemów zarządzania relacyjnymi bazami danych

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Bazy danych 7. Klucze obce Transakcje. P. F. Góra

Doc. dr inż. Maria Chałon. Ochrona i bezpieczeństwo danych

Internetowe bazy danych

SZKOLENIE: Administrator baz danych. Cel szkolenia

Transakcja jest sekwencją logicznie powiązanych operacji na bazie danych, która przeprowadza bazę danych z jednego stanu spójnego w inny stan spójny

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

Tadeusz Pankowski

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Bazy danych. Zasady konstrukcji baz danych

Rozproszone bazy danych 2

Sortowanie. Bartman Jacek Algorytmy i struktury

12. Które z harmonogramów transakcji są szeregowalne? a) (a1) (a2) (a3) (a4) b) (b1) (b2) (b3) (b4) c) (c1) (c2) (c3) (c4) d) (d1) (d2) (d3) (d4)

Oracle11g: Wprowadzenie do SQL

SQL Server. Odtwarzanie baz danych.

Implementacja prototypu modułu dostępu do danych SkOs przy pomocy protokołu LDAP

Ćwiczenie 9 współbieŝność

Paweł Rajba

STROJENIE BAZ DANYCH: INDEKSY. Cezary Ołtuszyk coltuszyk.wordpress.com

2. Tabele w bazach danych

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY Z PRZEDMIOTU INFORMATYKA

Transkrypt:

I. Techniki wielowersyjne sterowania współbieżnością Techniki wielowersyjne multiversion concurrency control. Technika wielowersyjna oparta na znacznikach czasu Dla każdej wersji X i elementu X przechowywane są dwa znaczniki czasu: TS_odczytu(X i ) największa wartośd spośród znaczników czasu transakcji, które z powodzeniem odczytały daną wersję X i. TS_zapisu(X i ) największa wartośd spośród znaczników czasu transakcji, które z powodzeniem zapisały daną wersję X i. Jeśli transakcja T może wykonad operację zapisz_element(x), tworzona jest nowa wersja X j elementu X i TS_odczytu(X j ) oraz TS_zapisu(X j ) ustawia się na TS(T). Jeśli transakcja T czyta X i odczytuje wartośd wersji X i, wartośd TS_odczytu(X i ) jest ustawiana na większą spośród wartości TS_odczytu(X i ) oraz TS(T). Reguły: 1) Jeżeli transakcja T wykonuje operację zapisz_element(x) i dla wersji i-tej elementu X o największym znaczniku czasowym zapisu mniejszym bądź równym TS(T) (czyli TS_zapisu(X i )<=TS(T)) zachodzi TS_odczytu(X i )>TS(T), wówczas transakcja T zostaje wycofana i potem będzie uruchomiona z nowym znacznikiem czasowym. W przeciwnym przypadku jeśli TS_zapisu(X i ) = TS(T), wersja X i jest modyfikowana, natomiast jeśli TS_zapisu(X i ) < TS(T), wówczas tworzona jest nowa wersja X j elementu X z wartościami TS_odczytu(X j ) = TS_zapisu(X j ) = TS(T). 2) Jeżeli transakcja T wykonuje operację odczytaj_element(x), wówczas odnajdywana jest wersja i-ta elementu X, która posiada największą wartośd TS_zapisu(X i ) spośród wszystkich wersji elementu X zapisanych przez transakcje o znacznikach mniejszych bądź równych TS(T). Wartośd X i jest przekazywana do transakcji T i wartośd TS_odczytu(X i ) ustawiana jest na większą spośród wartości TS(T) oraz bieżącej TS_odczytu(X i ). Technika wielowersyjna (dwuwersyjna) z użyciem blokad certyfikujących Wprowadza się nowy rodzaj blokady do certyfikacji. W tej technice blokady do zapisu (U) i do odczytu są ze sobą kompatybilne, natomiast nie są ze sobą kompatybilne blokady do zapisu (można rozważyd zastosowanie obydwu wersji omawianych wcześniej blokad U). Mogą byd przechowywane dwie wersje każdego elementu X. Jedna z wersji musi byd zawsze wersją zapisaną przez zatwierdzoną transakcję. Jedna z transakcji może dostad blokadę do zapisu i w tym samym czasie inne transakcje mogą czytad poprzednią wartośd (zatwierdzoną) elementu. Tylko jedna transakcja może w danym czasie zapisywad. Transakcja zapisuje swoją 1

wersję na brudno, jeśli transakcja jest gotowa do zatwierdzenia, musi uzyskad blokady do certyfikacji dla wszystkich zmienionych elementów. Blokady do certyfikacji są w konflikcie ze wszystkimi pozostałymi blokadami i z innymi blokadami do certyfikacji. Metoda ta pozwala uniknąd kaskadowego wycofania, ale możliwe są zakleszczenia. Technika odczytu spójnych wersji czasowych (technika wielowersyjna z użyciem blokad do zapisu typu X lub U)) Przechowywane są różne wersje danych. Transakcja odczytuje dane zatwierdzone przed początkiem transakcji (czyta zatwierdzone wartości, aktualne w momencie rozpoczęcia transakcji). Nie ma blokad do odczytu, zatem operacja odczytu nie blokuje operacji zapisu ani innych operacji odczytu. Są jednak stosowane długotrwałe (do kooca transakcji) blokady wyłączne do zapisu (operacja zapisu wyklucza inną operację zapisu). Transakcja T1 przy każdym zapisie sprawdza, czy istnieje inna transakcja T2, która zmodyfikowała dane zapisywane i zakooczyła się zatwierdzeniem. Jeśli istnieje taka transakcja T2, transakcja T1 jest wycofywana. Stosowaną tu zasadę można określid jako First-writer-wins. Ta technika jest stosowana w systemie Oracle w poziomie izolacji transakcji Serializable (w wersji do 10gr2 włącznie). II. Techniki optymistycznego sterowania współbieżnością Rozważane do tej pory techniki sterowania współbieżnością (oparte o blokady, oparte o znaczniki czasu, jednowersyjne i wielowersyjne) zakładały, że transakcje mogą operowad na tych samych danych (i byd może często to robią), zatem trzeba wprowadzad mechanizmy, które na bieżąco zapobiegają problemom wynikającym ze współbieżnego wykonania. Techniki optymistyczne zakładają, że na ogół transakcje operują na innych danych i w związku z tym można na bieżąco nie stosowad mechanizmów zapobiegających problemom, natomiast na koocu transakcji następuje sprawdzenie, czy realizowany harmonogram nie spowoduje problemów. Jeśli tak, to transakcja jest wycofywana, jeśli nie, to jest zatwierdzana. Trzy fazy: 1. Faza odczytu transakcja może odczytywad wartości zatwierdzonych elementów danych z bazy, aktualizacje są stosowane tylko względem kopii lokalnych elementów danych przechowywanych w obszarze roboczym transakcji. 2. Faza walidacji wykonywane jest sprawdzenie, mające na celu zapobieżenie naruszeniu szeregowalności w przypadku, gdy aktualizacje transakcji zostaną zastosowane. 3. Faza zapisu w razie powodzenia fazy walidacji, aktualizacje transakcji są zastosowane w bazie. W przeciwnym razie aktualizacje są odrzucane a transakcja później ponawiana. 2

III. Blokady zapobiegające, blokowanie na wielu poziomach ziarnistości Dotychczasowe założenie blokady tylko na poziomie wierszy. Można to zmienid. Mówi się z związku z tym o tzw. ziarnistości (granularity) blokowania. Można blokowad całe tabele, pewne zbiory wierszy (w praktycznych systemach: bloki, strony danych), kolumny, klucze, zakresy kluczy, indeksy, pliki, bazy danych. W kontekście blokowania można rozważad drzewo (hierarchę) elementów danych, którego korzeniem jest cała baza danych, natomiast liśdmi są najmniejsze elementy, na które może byd nałożona blokada. Blokowanie na tylko jednym poziomie najmniejszych elementów (np. wierszy) powoduje duży narzut (duża liczba blokad obsługiwanych przez zarządcę blokad). Z kolei blokowanie tylko dużych elementów powoduje zmniejszenie wydajności współbieżnych transakcji. Propozycja: można wprowadzid blokady na wielu poziomach (struktura drzewa). W celu ograniczenia przeszukiwania koniecznego do odnalezienia zablokowanych następników węzła można zastosowad tzw. blokady zapobiegające (intencjonalne, intent locks) i protokół blokowania zapobiegającego (intent locking protocol), które poprawią efektywnośd sprawdzania i przyznawania blokad. Protokół blokowania zapobiegającego: transakcja nie może założyd blokady na wierszu (generalnie: węźle wspomnianego wyżej drzewa), zanim nie otrzyma blokady (odpowiedniego typu) na tabeli zawierającej ten wiersz (generalnie: na węźle rodzicu). Nowe blokady na poziomie tabeli (ogólnie: na poziomie pewnego węzła macierzystego): IS (intent shared) wspólna blokada zapobiegająca transakcja zamierza założyd blokadę S na poszczególnych wierszach tabeli (ogólnie: węzłach potomnych) IX (intent exclusive) wyłączna blokada zapobiegająca zamiar założenia blokady X na wierszach (ogólnie: węzłach potomnych) SIX (shared intent exclusive) wspólna wyłączna blokada zapobiegająca na tabeli (węźle macierzystym) jest już blokada S, zamierza się założyd blokadę X na wiersze (połączenie S oraz IX). Macierz kompatybilności blokad: X SIX IX S IS bez blokady X Nie Nie Nie Nie Nie Tak SIX Nie Nie Nie Nie Tak Tak IX Nie Nie Tak Nie Tak Tak S Nie Nie Nie Tak Tak Tak IS Nie Tak Tak Tak Tak Tak bez blokady Tak Tak Tak Tak Tak Tak Protokół blokowania zapobiegającego: 1. Należy ściśle trzymad się zgodności blokad. 2. Korzeo drzewa musi zostad zablokowany jako pierwszy w dowolnym trybie. 3

3. Wierzchołek może zostad zablokowany przez transakcję T w trybie S lub IS tylko wtedy, gdy wierzchołek nadrzędny został już zablokowany przez transakcję T w trybie IS lub IX. 4. Wierzchołek może zostad zablokowany przez transakcję T w trybie X lub IX lub SIX tylko wtedy, gdy wierzchołek nadrzędny został już zablokowany przez transakcję T w trybie IX lub SIX. 5. Transakcja może zablokowad wierzchołek tylko wtedy, gdy nie zwolniła blokady żadnego wierzchołka (wymuszenie stosowania protokołu blokowania dwufazowego) 6. Transakcja może odblokowad wierzchołek tylko wtedy, gdy żaden z potomków tego wierzchołka nie jest zablokowany przez tę transakcję. Przykład Transakcja T 1 chce aktualizowad rekord r c2 w bloku B c, następnie T 2 chce odczytad rekord r a1 w bloku B a, następnie T 3 chce aktualizowad rekord r a2, następnie T 4 chce czytad B c, następnie T 5 chce odczytad blok B b i zaktualizowad rekord r b1. DB F 1 F 2 B a B b B c r a1 r a2 r a3 r b1 r b2 r c1 r c2 Przyznano? Pierwszy element danych, rodzaj blokady Drugi element Trzeci element Czwarty element T 1 Tak DB, IX F 2, IX B c, IX r c2, X T 2 Tak DB, IS F 1, IS B a, IS r a1, S T 3 Tak DB, IX F 1, IX B a, IX r a2, X T 4 Nie DB, IS (ok) F 2, IS (ok) B c, S (nie przyznano) T 5 Tak DB, IS F 1, IS B b, SIX r b1, X Eskalacja blokad łączenie blokad drobnoziarnistych w jedną gruboziarnistą, co ułatwia zarządzanie blokadami. Np. jeśli UPDATE aktualizuje dużo wierszy z tabeli, to system może zmienid ziarnistośd z poziomu wierszy do poziomu stron lub do poziomu tabeli. Inne typy blokad. W rzeczywistych systemach stosowane są również inne typy blokad, np. zabezpieczające przed dostępem do tabeli, jeśli modyfikowana jest jej struktura (blokady 4

modyfikacji schematu), blokady zakresów w kluczu, blokady w indeksach (mogą byd stosowane dla zabezpieczenia przed wierszami widmami). Zatrzaski (latches) Blokady zakładane na krótki czas, nie według reguły 2PL, stosowane np. w celu zagwarantowania fizycznej spójności bloku (strony) danych w czasie zapisywania na dysk. IV. Transakcje rozproszone - wprowadzenie Transakcje mogą dotyczyd operacji na wielu bazach danych, a nawet na wielu serwerach. Takie transakcje nazywają się transakcjami rozproszonymi. Dwufazowy protokół (2PC, 2 Phase Commit) zatwierdzania transakcji rozproszonych z wykorzystaniem zarządcy transakcji (jeden globalny) oraz zarządców zasobów (węzłów uczestników): Faza przygotowania (prepare). Zarządca transakcji otrzymuje żądanie wykonania operacji COMMIT, po czym wysyła żądanie prepare do zarządców zasobów przygotowania zakooczenia. Zarządcy zasobów zgłaszają do zarządcy transakcji wynik operacji prepare (czy transakcja może byd w lokalnym węźle zatwierdzona). Faza zatwierdzenia (commit). Jeśli wszyscy zarządcy zasobów zgłosili powodzenie (głosują za zatwierdzeniem transakcji), to zarządca transakcji wysyła do nich polecenie commit. Gdyby coś się nie powiodło, zarządca zasobów przesyła polecenie wycofania (rollback). 5