Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Transakcje Wykład 10 Prowadzący: dr Paweł Drozda.

Podobne prezentacje


Prezentacja na temat: "Transakcje Wykład 10 Prowadzący: dr Paweł Drozda."— Zapis prezentacji:

1 Transakcje Wykład 10 Prowadzący: dr Paweł Drozda

2 dr Paweł Drozda Wprowadzenie Baza danych odzwierciedla część rzeczywistości Zmiany świata rzeczywistego muszą znaleźć odzwierciedlenie w bazie (przejście ze stanu spójnego do innego stanu spójnego) Problemy: Awaryjność Współbieżny dostęp do danych Rozproszenie baz

3 dr Paweł Drozda Przykład wprowadzający Rezerwacja biletów lotniczych na lot X w firmie A przez pasażera Y za kwotę Z Awaria po dokonaniu zapłaty (przed wystawieniem biletu) – częściowo wykonane operacje Dwie osoby w tym samym czasie rezerwują ostatni bilet na dany lot Rozwiązanie - transakcja

4 dr Paweł Drozda Transakcje Sekwencja logicznie powiązanych operacji na bazie danych. Przeprowadza bazę z jednego stanu spójnego w inny stan spójny Dozwolone operacje: Odczyt, zapis danych Zakończenie transakcji Akceptację lub wycofanie transakcji Rozwiązuje problemy awaryjności, wielodostępności i rozproszenia

5 dr Paweł Drozda Transakcja – rezerwacja lotu begin UPDATE Loty SET wolneMiejsca=wolneMiejsca-1 WHERE idlotu =X; UPDATE Konta SET saldo = saldo –Z WHERE klient=Y; UPDATE Konta SET saldo = saldo +Z WHERE klient=A; INSERT INTO Pasażerowie(lot,klient) VALUES (X,Y); commit; // zatwierdzenie transakcji

6 dr Paweł Drozda Własności transakcji ACID (1) Atomowość (Atomicity) Wykonanie całej transakcji albo niewykonanie żadnej operacji składowej (odzwierciedlenie świata rzeczywistego) Spójność (Consistency) Transakcja nie narusza spójności (w czasie wykonywania transakcji baza może być przejściowo niespójna)

7 dr Paweł Drozda Własności transakcji ACID (2) Izolacja (Isolation) Transakcje wykonywane jednocześnie nie wpływają na siebie Trwałość (Durability) Po zakończeniu transakcji zaktualizowane dane nie mogą zostać w żaden sposób utracone

8 dr Paweł Drozda Zachowanie ACID - przykład Atomowość – gdy lot zostanie zarezerwowany z zapłatą Spójność – taka sama kwota dodana co odjęta; liczba miejsc w tabeli loty musi być równa liczbie nowych rekordów w tabeli Pasażerowie Izolacja – różne rezerwacje nie wpływają na siebie Trwałość – odzwierciedlenie w bazie nowych stanów

9 dr Paweł Drozda Możliwe przebiegi transakcji READ/WRITE Start p. COMMITED FAILED COMMITED TERMINATED Koniec transakcji – wszystkie operacje zostały wykonane. Wybór: -wprowadzić zmiany do bazy poprzez zatwierdzenie (commit) -wycofać transakcję (rollback)

10 dr Paweł Drozda Reprezentacja transakcji Operacje transakcji: Zapis – w(x) Odczyt – r(x) Zatwierdzenie – c wycofanie – a Reprezentacja za pomocą grafu G(V,A): V – węzły odpowiadające operacjom transakcji A – krawędzie reprezentujące porządek na zbiorze operacji

11 dr Paweł Drozda Reprezentacja transakcji - przykład a) b) r(y)r(x)cw(x)w(y) r(x) w(y) w(x)r(z) r(y) c T1T1 T2T2

12 dr Paweł Drozda Kontrola wielodostępu Konieczność zapewnienia dostępu do bazy danych wielu użytkownikom Zapewnienie możliwości wykonania współbieżnie transakcji Problemy wynikające z wielodostępu: utrata zmian niezatwierdzone zależności niespójność

13 dr Paweł Drozda Problemy wielodostępu – przykład(1) Utrata zmian x – stan konta – początek 50 T1T1 T2T2 r(x) x=x+20 x=x-30w(x) commit x Stan konta po operacjach powinien wynieść 40. Została utracona informacja o zwiększeniu o kwotę 20

14 dr Paweł Drozda Problemy wielodostępu – przykład(2) niezatwierdzone zależności x – stan konta – początek 50 T1T1 T2T2 r(x) x=x+20 x=x-30w(x) commit rollback x … 40

15 dr Paweł Drozda Problemy wielodostępu – przykład(3) Niespójność stany kont początek x=50 y=30 z=40 s - suma T1T1 T2T2 s=0 r(z) s=s+x z=z+30w(z)commit x20 30 y 40 z suma r(x)r(y)s=s+y r(z) s=s+z r(x)x=x-30w(x)

16 dr Paweł Drozda Szeregowalność transakcji (1) Definicje: Harmonogram (realizacja) – ciąg operacji z więcej niż jednej transakcji z zachowaniem porządku w każdej z transakcji sekwencyjny – bez przeplatania operacji pomiędzy transakcjami niesekwencyjny – operacje różnych transakcji przeplatają się Szeregowalność – możliwość ustawienia transakcji współbieżnych, tak aby wynik był równoważny z wykonaniem sekwencyjnym

17 dr Paweł Drozda Szeregowalność transakcji (2) Zapewnienie szeregowalności – odpowiednie uporządkowanie operacji zapisu i odczytu: transakcje czytają ten sam element – kolejność odczytu nieistotna Transakcje czytają lub zapisują różne elementy – kolejność wykonania nieistotna Jedna z transakcji zapisuje element a druga odczytuje lub zapisuje – kolejność istotna

18 dr Paweł Drozda Szeregowalność - przykład T1T1 T2T2 T1T1 T2T2 w(y)commit r(x)w(x)r(y) w(y)r(x)w(x)r(y) w(y)commit r(x)w(x)r(y) w(y)r(x)w(x)r(y) Szeregowanie kolizji

19 dr Paweł Drozda Graf szeregowalności Graf skierowany G(N,E) jest grafem szeregowalności, gdzie: transakcje T i obrazowane są przez wierzchołki T i T j jest krawędzią grafu, gdy T j zapisuje wartość elementu wcześniej czytanego przez T i T i T j jest krawędzią grafu, gdy T j czyta wartość elementu zapisanego przez T i T i T j jest krawędzią grafu, gdy T j zapisuje wartość elementu wcześniej zapisanego przez T i Jeśli w grafie G istnieje krawędź T i T j to w sekwencyjnym harmonogramie równoważnym T i występuje przed T j

20 dr Paweł Drozda Warunek szeregowalności grafu Harmonogram jest szeregowalny wtedy i tylko wtedy, gdy graf szeregowalności dla tego harmonogramu jest acykliczny T1T1 T2T2 r(y) x=x*1.1 y=y+30w(y)commit r(x) r(y)y=y*1.1w(y) r(x)x=x-30w(x) T1T1 T2T2 Graf cykliczny

21 dr Paweł Drozda Odtwarzalność Szeregowalność daje gwarancję poprawności wykonania harmonogramu transakcji, gdy wszystkie transakcje są zaakceptowane (commited) Problem – jedna z transakcji wycofana (przez użytkownika, awaria systemu itd.) H = r 1 (x) w 1 (x), r 2 (x), w 2 (x), c 2 r 1 (x), w 1 (x),, c 1

22 dr Paweł Drozda Odtwarzalność - definicje T i czyta daną x z transakcji T j w harmonogramie H jeżeli: w j (x)

23 dr Paweł Drozda Harmonogram odtwarzalny Harmonogram H jest odtwarzalny (RC) wówczas, jeżeli T i czyta z T j w harmonogramie H i c i należy do H to c j

24 dr Paweł Drozda Odtwarzalność - przykład T 1 = w 1 (x) w 1 (y)w 1 (z)c 1 T 2 = r 2 (u)w 2 (x) r 2 (y)w 2 (y)c 2 H 1 = w 1 (x)w 1 (y)r 2 (u)w 2 (x)r 2 (y)w 2 (y)c 2 w 1 (z)c 1 H 2 = w 1 (x)w 1 (y)r 2 (u)w 2 (x)r 2 (y)w 2 (y)w 1 (z)c 1 c 2 H 3 = w 1 (x)w 1 (y)r 2 (u)w 2 (x)w 1 (z)c 1 r 2 (y)w 2 (y)c 2 H 4 = w 1 (x)w 1 (y)r 2 (u)w 1 (z)c 1 w 2 (x)r 2 (y)w 2 (y)c 2 H 1 – nie odtwarzalna, H 2 – RC, H 3 – RC, ACA, H 4 – RC,ACA,ST

25 dr Paweł Drozda Odtwarzalność - zależności

26 dr Paweł Drozda Algorytmy zarządzania współbieżnym wykonaniem transakcji blokowanie - uszeregowanie transakcji wynika z kolejności uzyskiwanych blokad znaczników czasowych – uszeregowanie wynika z wartości znaczników czasowych związanych z transakcjami optymistyczne – walidacja poprawności uszeregowania

27 dr Paweł Drozda Blokowanie (1) Blokada – zmienna skojarzona z każdą daną w bazie; określa możliwość wykonania określonych operacji Możliwe stany: dana nie zablokowana dana zablokowana do odczytu R dana zablokowana do zapisu W

28 dr Paweł Drozda Blokowanie (2) Operacje SZBD związane z blokowaniem: Blokowanie danej x do odczytu (LR(x)) Blokowanie danej x do zapisu (LW(x)) Odblokowanie danej x (UNL(x)) Operacje blokowania muszą poprzedzać operacje odczytu lub zapisu zmiennej

29 dr Paweł Drozda Blokowanie (3) Dwie blokady są kompatybilne, gdy mogą być założone na jednej danej przez dwie różne transakcje (tylko dwie blokady odczytu są kompatybilne) Konwersja blokad – zmiana typu blokady. Niedopuszczalna konwersja z blokady do zapisu na blokadę do odczytu

30 dr Paweł Drozda Algorytm blokowania (1) Dla każdej danej dwie kolejki: Transakcji, które uzyskały dostęp do danej Transakcji oczekujących na dostęp do danej danaidtblokada x1T1W x2T1R x2T2R x3T2W danaidtblokadakolejka x1T2R1 x1T3W2 x2T4W1

31 dr Paweł Drozda Algorytm blokowania (2) Potrzebne funkcje Założenie blokady do odczytu – gdy dana niezablokowana lub zablokowana do odczytu– założenie blokady, w przeciwnym razie transakcja czeka w kolejce Założenie blokady do zapisu – gdy dana jest niezablokowana – założenie blokady, w przeciwnym razie do kolejki Zdjęcie blokady

32 dr Paweł Drozda Algorytm blokowania - przykład T1T2 Rlock(T1,Y)Rlock(T2,X) r(Y)r(X) unlock(Y)unlock(X) Wlock(T1,X)Wlock(T2,Y) r(X)r(Y) X=X+YY=X+Y w(X)w(Y) unlock(X)unlock(Y) X=20, Y=30 Współbieżnie: X=50, Y=50 Sekwencyjnie T1T2 X=50, Y=80 Sekwencyjnie T2T1 X=70, Y=50

33 dr Paweł Drozda Blokowanie dwufazowe Algorytm podstawowy: r(x) poprzedzone przez Rlock(T,x) lub Wlock(T,x) w(x) poprzedzone przez Wlock(T,x) unlock – po wszystkich operacjach r(x), w(x) Inne warianty: statyczny – blokady założone przed rozpoczęciem transakcji ścisły – blokady do zapisu zdjęte po wykonaniu całej transakcji restryktywny/sztywny – blokady zdjęte po operacji rollback lub commit Zapewnia szeregowalość

34 dr Paweł Drozda Blokowanie dwufazowe - przykład T1T2 Rlock(T1,Y) r(Y) Wlock(T1,X) Rlock(T2,X) r(X)wait X=X+Ywait w(X)wait unlock(Y)wait unlock(X)wait r(X) Wlock(T2,Y) r(Y) Y=X+Y w(Y) unlock(X) unlock(Y)

35 dr Paweł Drozda Zakleszczenie transakcji Gdy dwie transakcje czekają T1T2 Rlock(T1,Y) r(Y) Rlock(T2,X) r(X) Wlock(T2,Y) Wlock(T1,X)wait …… Dwa podejścia do rozwiązania: - wykrywanie i rozwiązanie zakleszczenia - zapobieganie wystąpieniu zakleszczenia

36 dr Paweł Drozda Zapobieganie zakleszczeniom (1) Wykorzystanie znaczników czasowych nadawanych w momencie inicjacji transakcji wait-die – gdy T i jest starsza od T j to T i czeka na zwolnienie blokady, gdy młodsza – wycofana i zrestartowana z tym samym znacznikiem czasowym wound-wait – gdy T i jest starsza od T j to T j będzie wycofana i zrestartowana z tym samym znacznikiem czasowym. W przeciwnym przypadku T i czeka Wada – czasem wycofują transakcje, które niekoniecznie się zakleszczą

37 dr Paweł Drozda Zapobieganie zakleszczeniom (2) no waiting – gdy dostęp zablokowany T i wycofana i zrestartowana po pewnym czasie cautious waiting – gdy T i próbuje uzyskać dostęp do zablokowanej danej X przez T j i gdy T j nie czeka na odblokowanie innej danej to T i czeka na X. W przeciwnym przypadku T i wycofana i zrestartowana

38 dr Paweł Drozda Metody wykrywania i rozwiązywania zakleszczeń Za pomocą grafu: transakcje jako węzły oczekiwanie transakcji T i na daną zablokowaną przez T j reprezentowane przez krawędź skierowaną cykl w grafie oznacza zakleszczenie eliminacja – wycofanie jednej z transakcji cyklu graf sprawdzany jeśli transakcja czeka zbyt długo – przekroczyła ustalony limit czasu co określony czas


Pobierz ppt "Transakcje Wykład 10 Prowadzący: dr Paweł Drozda."

Podobne prezentacje


Reklamy Google