Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Systemy zarządzania bazami danych 9. Transakcje. Oryginał: Hector Garcia-Molina9. Transakcje2 Współbieżność, wielodostęp T 1 T 2 …T n BD (więzy integralności)

Podobne prezentacje


Prezentacja na temat: "Systemy zarządzania bazami danych 9. Transakcje. Oryginał: Hector Garcia-Molina9. Transakcje2 Współbieżność, wielodostęp T 1 T 2 …T n BD (więzy integralności)"— Zapis prezentacji:

1 Systemy zarządzania bazami danych 9. Transakcje

2 Oryginał: Hector Garcia-Molina9. Transakcje2 Współbieżność, wielodostęp T 1 T 2 …T n BD (więzy integralności)

3 Oryginał: Hector Garcia-Molina9. Transakcje3 Przykładowe transakcje T1:Read(A)T2:Read(A) A A+100A A 2Write(A)Read(B) B B+100B B 2Write(B) Więzy: A=B

4 Oryginał: Hector Garcia-Molina9. Transakcje4 Plan 1 T1T2 Read(A); A A+100 Write(A); Read(B); B B+100; Write(B); Read(A);A A 2; Write(A); Read(B);B B 2; Write(B); AB

5 Oryginał: Hector Garcia-Molina9. Transakcje5 Plan 2 T1T2 Read(A);A A 2; Write(A); Read(B);B B 2; Write(B); Read(A); A A+100 Write(A); Read(B); B B+100; Write(B); AB

6 Oryginał: Hector Garcia-Molina9. Transakcje6 Plan 3 T1T2 Read(A); A A+100 Write(A); Read(A);A A 2; Write(A); Read(B); B B+100; Write(B); Read(B);B B 2; Write(B); AB

7 Oryginał: Hector Garcia-Molina9. Transakcje7 Plan 4 T1T2 Read(A); A A+100 Write(A); Read(A);A A 2; Write(A); Read(B);B B 2; Write(B); Read(B); B B+100; Write(B); AB

8 Oryginał: Hector Garcia-Molina9. Transakcje8 Plan 5 T1T2 Read(A); A A+100 Write(A); Read(A);A A 1; Write(A); Read(B);B B 1; Write(B); Read(B); B B+100; Write(B); AB Taki sam jak plan 5, ale z inną T2

9 Oryginał: Hector Garcia-Molina9. Transakcje9 Chcemy planów dobrych niezależnie od –początkowego stanu bazy danych –tego co robią transakcje Patrzymy tylko na kolejność zapisów i odczytów Przykład: P3=r 1 (A)w 1 (A)r 2 (A)w 2 (A)r 1 (B)w 1 (B)r 2 (B)w 2 (B) Założenia

10 Oryginał: Hector Garcia-Molina9. Transakcje10 P1=r 1 (A)w 1 (A) r 1 (B)w 1 (B)r 2 (A)w 2 (A)r 2 (B)w 2 (B) T 1 T 2 P3=r 1 (A)w 1 (A)r 2 (A)w 2 (A)r 1 (B)w 1 (B)r 2 (B)w 2 (B) Akcje zamienne

11 Oryginał: Hector Garcia-Molina9. Transakcje11 P4=r 1 (A)w 1 (A)r 2 (A)w 2 (A) r 2 (B)w 2 (B)r 1 (B)w 1 (B) W istocie: T 2 musi poprzedzać T 1 w każdym planie równoważnym, tzn. T 2 T 1 Akcje niezamienne

12 Oryginał: Hector Garcia-Molina9. Transakcje12 T 1 T 2 P4 nie można poprzestawiać tak by był szeregowy P4 nie jest równoważny żadnemu planowi szeregowemu P4 jest zły T 2 T 1 Ale także: T 1 T 2

13 Oryginał: Hector Garcia-Molina9. Transakcje13 Powróćmy do P3 P3=r 1 (A)w 1 (A)r 2 (A)w 2 (A)r 1 (B)w 1 (B)r 2 (B)w 2 (B) T 1 T 2 T 1 T 2 brak cykli P3 jest równoważny planowi szeregowemu (w tym wypadku T 1,T 2 )

14 Oryginał: Hector Garcia-Molina9. Transakcje14 Podstawowe pojęcia Transakcja: ciąg akcji r i (x), w i (x) Akcje konfliktowe: r 1(A) w 2(A) w 1(A) w 2(A) r 1(A) w 2(A) Plan: porządek chronologiczny wykonanych akcji Plan szeregowy: plan bez przeplotu akcji różnych transakcji

15 Oryginał: Hector Garcia-Molina9. Transakcje15 A co z akcjami równoległymi? Ti zlecaSystemInput(X) t x read(x,t)zlecakończy input(x)się czas T2 zleca write(B,S) System zleca input(B) kończy się B S System zleca output(B) kończy się

16 Oryginał: Hector Garcia-Molina9. Transakcje16 Więc ostatecznie efekt jest jednym z: P1=…r 1 (x)…w 2 (b)… P2=…w 2 (B)…r 1 (x)…

17 Oryginał: Hector Garcia-Molina9. Transakcje17 Zakładamy, że wykonało się r 1 (A) w 2 (A) lubw 2 (A) r 1 (A) Niskopoziomowy mechanizm synchronizacji Zakładamy, że akcje są atomowe A co z konfliktowymi równoległymi akcjami na tym samym obiekcie? początek r 1 (A)koniec r 1 (A) początek w 2 (A) koniec w 2 (A) czas

18 Oryginał: Hector Garcia-Molina9. Transakcje18 Równoważność konfliktowa P 1, P 2 są równoważne konfliktowo, wtedy i tylko wtedy, gdy P 1 można przekształcić w P 2 za pomocą ciągu zamian niekonfliktowych akcji.

19 Oryginał: Hector Garcia-Molina9. Transakcje19 Szeregowalność konfliktowa P jest szeregowalny konfliktowo, wtedy i tylko wtedy, gdy P jest równoważny konfliktowo pewnemu planowi szeregowemu

20 Oryginał: Hector Garcia-Molina9. Transakcje20 Oznaczamy GK(P), P jest planem Węzły: transakcje planu P Krawędzie: Ti Tj jest w GK(P), wtw. –p i (A), q j (A) są akcjami w P –p i (A) < S q j (A) –co najmnniej jedna z p i, q j jest zapisem Graf kolejności

21 Oryginał: Hector Garcia-Molina9. Transakcje21 Ćwiczonko Jaki jest GK(P), gdy P = w 3 (A) w 2 (C) r 1 (A) w 1 (B) r 1 (C) w 2 (A) r 4 (A) w 4 (D) Czy P jest szeregowalny?

22 Oryginał: Hector Garcia-Molina9. Transakcje22 Następne ćwiczonko Jaki jest GK(P), gdy P = w 1 (A) r 2 (A) r 3 (A) w 4 (A) ?

23 Oryginał: Hector Garcia-Molina9. Transakcje23 Lemat P 1, P 2 są konfliktowo równoważne GK(P 1 )=GK(P 2 ) Dowód: Załóżmy, że GK(P 1 ) GK(P 2 ) T i : T i T j w P 1 ale nie w P 2 P 1 = …p i (A)... q j (A)… p i, q j są P 2 = …q j (A)…p i (A)... konfliktowe nie da się ich zamienić P 1, P 2 nie są równoważne konfliktowo

24 Oryginał: Hector Garcia-Molina9. Transakcje24 Uwaga: GK(P 1 )=GK(P 2 ) P 1, P 2 są konfliktowo równoważne Kontrprzykład: P 1 =w 1 (A) r 2 (A) w 2 (B) r 1 (B) P 2 =r 2 (A) w 1 (A) r 1 (B) w 2 (B)

25 Oryginał: Hector Garcia-Molina9. Transakcje25 Twierdzenie GK(P 1 ) acykliczny P 1 szeregowalny konfliktowo ( ) Załóż, że P 1 jest szeregowalny konfliktowo P s : P s, P 1 równoważne konfliktowo GK(P s ) = GK(P 1 ) GK(P 1 ) acykliczny, bo GK(P s ) acykliczny

26 Oryginał: Hector Garcia-Molina9. Transakcje26 ( ) Załóż, że GK(P 1 ) acykliczny Przekształć P 1 następująco: (1) Weź T 1 transakcję bez wchodzących krawędzi (2) Przesuń wszystkie akcje T 1 na początek P 1 = ……. q j (A)……. p 1 (A)….. (3) Mamy teraz P 1 = (4) Powtarzaj dopóki nie osiągniesz planu szeregowego (indukcja) T 1 T 2 T 3 T 4 GK(P 1 ) acykliczny P 1 szeregowalny konfliktowo Dowód c.d.

27 Oryginał: Hector Garcia-Molina9. Transakcje27 Jak wykluczyć plany nieszeregowalne? Opcja 1: niech SZBD działa i rejestruje GK(P). Na koniec przetwarzania (np. dnia) sprawdź GK(P) i ogłoś, czy wykonanie było poprawne

28 Oryginał: Hector Garcia-Molina9. Transakcje28 Opcja 2: spraw w GK(P) nie mogły powstać by cykle T 1 T 2 …..T n Planista BD Jak wykluczyć plany nieszeregowalne?

29 Oryginał: Hector Garcia-Molina9. Transakcje29 Protokół zakładania zamków Dwie nowe akcje: załóż zamek (wyłączne):l i (A) zdejmij zamek:u i (A) Planista T 1 T 2 Tablica zamków

30 Oryginał: Hector Garcia-Molina9. Transakcje30 Reguła 1: Legalne transakcje T i : … l i (A) … p i (A) … u i (A)...

31 Oryginał: Hector Garcia-Molina9. Transakcje31 Reguła 2: Poprawny planista P = …….. l i (A) ………... u i (A) ……... brak l j (A)

32 Oryginał: Hector Garcia-Molina9. Transakcje32 Które plany przepuści poprawny planista? Które transakcje są legalne? P1 = l 1 (A)l 1 (B)r 1 (A)w 1 (B)l 2 (B)u 1 (A)u 1 (B) r 2 (B)w 2 (B)u 2 (B)l 3 (B)r 3 (B)u 3 (B) P2 = l 1 (A)r 1 (A)w 1 (B)u 1 (A)u 1 (B) l 2 (B)r 2 (B)w 2 (B)l 3 (B)r 3 (B)u 3 (B) P3 = l 1 (A)r 1 (A)u 1 (A)l 1 (B)w 1 (B)u 1 (B) l 2 (B)r 2 (B)w 2 (B)u 2 (B)l 3 (B)r 3 (B)u 3 (B) Ćwiczonko

33 Oryginał: Hector Garcia-Molina9. Transakcje33 Plan 6 T1 T2 l 1 (A);Read(A) A A+100;Write(A);u 1 (A) l 2 (A);Read(A) A Ax2;Write(A);u 2 (A) l 2 (B);Read(B) B Bx2;Write(B);u 2 (B) l 1 (B);Read(B) B B+100;Write(B);u 1 (B)

34 Oryginał: Hector Garcia-Molina9. Transakcje34 Plan 6 T1 T l 1 (A);Read(A) A A+100;Write(A);u 1 (A) 125 l 2 (A);Read(A) A Ax2;Write(A);u 2 (A) 250 l 2 (B);Read(B) B Bx2;Write(B);u 2 (B) 50 l 1 (B);Read(B) B B+100;Write(B);u 1 (B) A B

35 Oryginał: Hector Garcia-Molina9. Transakcje35 Reguła 3 Zamykanie dwufazowe T i = ……. l i (A) ………... u i (A) ……... Bez zdejmowaniaBez zakładania zamków 2PL = Two-phase locking

36 Oryginał: Hector Garcia-Molina9. Transakcje36 # zamki trzymane przez Ti czas Faza Faza wzrostu spadku

37 Oryginał: Hector Garcia-Molina9. Transakcje37 Plan 7 uśpienie procesu

38 Oryginał: Hector Garcia-Molina9. Transakcje38 Plan 7 uśpiony

39 Oryginał: Hector Garcia-Molina9. Transakcje39 uśpiony Plan 7

40 Oryginał: Hector Garcia-Molina9. Transakcje40 Plan 8 (T 2 działa najpierw na B) uśpiony

41 Oryginał: Hector Garcia-Molina9. Transakcje41 Zakładamy, że zakleszczone transakcje są wycofywane –Nie mają żadnego skutku –Nie pojawiają się w planie Np., Plan 8 = To miejsce jest celowo puste!

42 Oryginał: Hector Garcia-Molina9. Transakcje42 Konfliktowość akcji l i (A), u i (A) l i (A), l j (A) nie są w konflikcie l i (A), u j (A) są w konflikcie Uwaga: brak konfliktu również tu: –, –,...

43 Oryginał: Hector Garcia-Molina9. Transakcje43 Twierdzenie Przestrzeganie reguł 1,2,3 (2PL) daje plany szeregowalne konfliktowo W dowodzie pomoże nam funkcja SH Definicja SH(T i ) = pierwsza akcja u transakcji T i Poprawność 2PL

44 Oryginał: Hector Garcia-Molina9. Transakcje44 Lemat Ti Tj w planie P SH(Ti) < S SH(Tj) Dowód lematu: Ti Tj oznacza, że S = … p i (A) … q j (A) …; p,q konfliktowe Zgodnie z regułami 1,2: S = … p i (A) … u i (A) … l j (A)... q j (A) … Reguła 3: SH(Ti) SH(Tj) Więc: SH(Ti) < S SH(Tj)

45 Oryginał: Hector Garcia-Molina9. Transakcje45 Dowód: (1) Załóżmy, że GK(P) ma cykl T 1 T 2 …. T n T 1 (2) Na mocy lematu: SH(T 1 ) < SH(T 2 ) <... < SH(T 1 ) (3) Niemożliwe, więc GK(P) acykliczny (4) P jest szeregowalny konfliktowo Twierdzenie Przestrzeganie reguł 1,2,3 (2PL) daje plany szeregowalne konfliktowo

46 Oryginał: Hector Garcia-Molina9. Transakcje46 Efektywność i współbieżność Dalej należy rozwazyć wiele rzeczy, które poprawią efektywnośc i zwiększą współbieżność bazowego 2PL –Zamki dzielone –Wieloraka ziarnistość –Wstawienie, usunięcia i fantomy –Inne rodzaje mechanizmów ochrony przetwarzania współbieżnego

47 Oryginał: Hector Garcia-Molina9. Transakcje47 Zamki dzielone Dotychczas: P =...l 1 (A) r 1 (A) u 1 (A) … l 2 (A) r 2 (A) u 2 (A) … Niekonfliktowe Zamiast tego: P=... ls 1 (A) r 1 (A) ls 2 (A) r 2 (A) …. us 1 (A) us 2 (A)

48 Oryginał: Hector Garcia-Molina9. Transakcje48 Akcje zamkowe l-t i (A): załóż zamek na A in trybie t (S lub X) u-t i (A): zdejmij zamek trybu t (S lub X) Skrót: u i (A): zdejmij zamek niezależne trybu jego założenia

49 Oryginał: Hector Garcia-Molina9. Transakcje49 Reguła 1: Legalne transakcje T i =... l-S 1 (A) … r 1 (A) … u 1 (A) … T i =... l-X 1 (A) … w 1 (A) … u 1 (A) …

50 Oryginał: Hector Garcia-Molina9. Transakcje50 Opcja 1: Zażądaj zamka wyłącznego T i =...l-X 1 (A) … r 1 (A)... w 1 (A)... u(A) … A gdy transakcja czyta i pisze ten sam obiekt?

51 Oryginał: Hector Garcia-Molina9. Transakcje51 Opcja 2: Promocja (np., potrzebny odczyt, ale nie wiemy, czy będzie zapis) T i =... l-S 1 (A) … r 1 (A)... l-X 1 (A) …w 1 (A)...u(A)… - weź 2-gi zamek na A lub - oddaj S, weź X A gdy transakcja czyta i pisze ten sam obiekt?

52 Oryginał: Hector Garcia-Molina9. Transakcje52 Reguła 2: Poprawny planista P =....l-S i (A) … … u i (A) … brak l-X j (A) P =... l-X i (A) … … u i (A) … brak l-X j (A) brak l-S j (A)

53 Oryginał: Hector Garcia-Molina9. Transakcje53 Macierz zgodności zamków zgodne S X S T N X N N

54 Oryginał: Hector Garcia-Molina9. Transakcje54 Reguła3: Zamykanie dwufazowe Brak zmian oprócz promocji: (I) Jeśli promocja bierze więcej zamków (np., S {S, X}) tak samo! (II) Jeśli promocja zwalnia zamek (np., S X) - może być wykonana w fazie wzrostu

55 Oryginał: Hector Garcia-Molina9. Transakcje55 Dowód: podobnie jak w przypadku X Szczegół: l-t i (A), l-r j (A) nie są w konflikcie jeśli zgodne(t,r) l-t i (A), u-r j (A) nie są w konflikcie jeśli zgodne (t,r) Twierdzenie Przestrzeganie reguł 1, 2, 3 dla zamków S/X powoduje, że wszystkie plany będą szeregowalne konfliktowo

56 Oryginał: Hector Garcia-Molina9. Transakcje56 Rodzaje zamków oprócz S i X Przykłady: (1) zamek increment (2) zamek modyfikacyjny

57 Oryginał: Hector Garcia-Molina9. Transakcje57 Zamek increment Atomowa akcja zwiększania: IN i (A) {Read(A); A A+k; Write(A)} IN i (A), IN j (A) nie są w konflikcie! A=7 A=5A=17 A=15 IN i (A) +2 IN j (A) +10 IN j (A) +2 IN i (A)

58 Oryginał: Hector Garcia-Molina9. Transakcje58 zgodneSXI STNN XNNN INNT Macierz zgodności zamków increment

59 Oryginał: Hector Garcia-Molina9. Transakcje59 Zamki modyfikacyjne

60 Oryginał: Hector Garcia-Molina9. Transakcje60 Rozwiązanie Jeśli T i chce przeczytać A i wie, że może poźniej chcieć zmodyfikować A, żąda zamka modyfikacyjnego (U), a nie dzielonego.

61 Oryginał: Hector Garcia-Molina9. Transakcje61 zgodneSXU STNT XNNN U T/N NN Tablica nie musi być symetryczna? Co będzie gdy N? Co będzie gdy T? Nowe żądanie Zamek już trzymany

62 Oryginał: Hector Garcia-Molina9. Transakcje62 Uwaga: obiekt A może być zamknięty w tym samym czasie na różne sposoby P 1 =...l-S 1 (A)…l-S 2 (A)…l-U 3 (A)… l-S 4 (A)…? l-U 4 (A)…? Przydzielenie zamka t na obiekcie jest możliwe wtw. wszystkie zamki trzymane na tym obiekcie są zgodne z t

63 Oryginał: Hector Garcia-Molina9. Transakcje63 Zamki w praktyce Każdy SZBD jest inny –np., może nawet nie udostępniąć możliwości zapewniania, że plany są szeregowalne konfliktowo) Jest jedno uproszczenie...

64 Oryginał: Hector Garcia-Molina9. Transakcje64 (1) Nie ufaj transakcjom, że będą same zakładać i zdejmować zamki (2) Trzymaj wszystkie zamki do chwili zatwierdzenia (3) Skąd my to znamy? liczba zamków czas Proste podejście SQL

65 Oryginał: Hector Garcia-Molina9. Transakcje65 Ti Read(A),Write(B) l(A),Read(A),l(B),Write(B)… Read(A),Write(B) Planista, część I Planista, część II BDBD Tablica zamków

66 Oryginał: Hector Garcia-Molina9. Transakcje66 Tablica zamków A B C... Informacje o zamkach na B Informacje o zamkach na C Jeśli null, obiekt nie ma zamka Każdy możliwy obiekt

67 Oryginał: Hector Garcia-Molina9. Transakcje67 Lepiej użyć tablicy haszującej A Jeśli obiektu nie ma w tablicy haszujacej, nie jest na nim założony żaden zamek A... H Informacje o zamkach na A

68 Oryginał: Hector Garcia-Molina9. Transakcje68 Przykład informacji o zamkach tran tryb czeka? Nst T_link Obiekt:A Tryb zamka:U Czekają?:tak Lista: T1 S nie T2 U nie T3X tak Do innych zapisów T3

69 Oryginał: Hector Garcia-Molina9. Transakcje69 Na które obiekty zakładamy zamki? ? Relacja A Relacja B... Krotka A Krotka B Krotka C... Blok dyskowy A Blok dyskowy B... BDBD BD BDBD

70 Oryginał: Hector Garcia-Molina9. Transakcje70 Zamki działają zawsze, ale czy powinny być na małych czy dużych obiektach? Gdy są na dużych obiektach (np. relacjach) –Potrzeba mniej zamków –Mniejsze możliwości współbieżności Gdy są na małych obiektach (np. krotkach) –Potrzeba więcej zamków –Większa współbieżność

71 Oryginał: Hector Garcia-Molina9. Transakcje71 Możemy mieć jedno i drugie! Spytaj babci klozetowej o poradę... Korytarz Kabina 1Kabina 2Kabina 3Kabina 4 Toaleta

72 Oryginał: Hector Garcia-Molina9. Transakcje72 Przykład R1 t1t1 t2t2 t3t3 t4t4 T 1 (IS) T 1 (S), T 2 (S)

73 Oryginał: Hector Garcia-Molina9. Transakcje73 Przykład R1 t1t1 t2t2 t3t3 t4t4 T 1 (IS) T 1 (S), T 2 (IX) T 2 (X)

74 Oryginał: Hector Garcia-Molina9. Transakcje74 Wieloraka ziarnistość zgodneŻądanie IS IX S SIX X IS Trzymany IX S SIX X TTTTN N N N NNNNN NNNT NTNT NNTT

75 Oryginał: Hector Garcia-Molina9. Transakcje75 ParentChild can belocked in IS IX S SIX X P C

76 Oryginał: Hector Garcia-Molina9. Transakcje76 ZamekZamki, które można na rodzicu założyć na dziecku IS IX S SIX X R D IS, S IS, S, IX, X, SIX [S, IS] niekoniecznie X, IX, [SIX] żaden

77 Oryginał: Hector Garcia-Molina9. Transakcje77 Reguły (1) Działaj zgodnie z macierzą zgodności zamków (2) Załóż najpierw zamek na korzeń drzewa (3) Ti może założyć zamek S lub IS na węzeł Q tylko wtedy, gdy rodzic(Q) ma zamek IX lub IS założony przez transakcję Ti (4) Ti może założyć zamek X,SIX,IX na węzeł Q tylko wtedy, gdy rodzic(Q) ma zamek IX lub SIX założony przez transakcję Ti (5) Ti zakłada zamki dwufazowo (6) Ti może zdjąć zamek na Q only tylko wtedy, gdy żadne z dzieci Q nie ma zamka od Ti

78 Oryginał: Hector Garcia-Molina9. Transakcje78 Ćwiczonko Czy T 2 może użyć f 2.2 w trybie X? Jakie zamki uzyska T 2 w tym celu? R1 t1t1 t2t2 t3t3 t4t4 T 1 (IX) f 2.1 f 2.2 f 3.1 f 3.2 T 1 (IX) T 1 (X)

79 Oryginał: Hector Garcia-Molina9. Transakcje79 Czy T 2 może użyć f 2.2 w trybie X? Jakie zamki uzyska T 2 w tym celu? R1 t1t1 t2t2 t3t3 t4t4 T 1 (X) f 2.1 f 2.2 f 3.1 f 3.2 T 1 (IX) Ćwiczonko

80 Oryginał: Hector Garcia-Molina9. Transakcje80 Czy T 2 może użyć f 3.1 w trybie X? Jakie zamki uzyska T 2 w tym celu? R1 t1t1 t2t2 t3t3 t4t4 T 1 (S) f 2.1 f 2.2 f 3.1 f 3.2 T 1 (IS) Ćwiczonko

81 Oryginał: Hector Garcia-Molina9. Transakcje81 Czy T 2 może użyć f 2.2 w trybie S? Jakie zamki uzyska T 2 w tym celu? R1 t1t1 t2t2 t3t3 t4t4 T 1 (IX) f 2.1 f 2.2 f 3.1 f 3.2 T 1 (SIX) T 1 (X) Ćwiczonko

82 Oryginał: Hector Garcia-Molina9. Transakcje82 Czy T 2 może użyć f 2.2 w trybie X? Jakie zamki uzyska T 2 w tym celu? R1 t1t1 t2t2 t3t3 t4t4 T 1 (IX) f 2.1 f 2.2 f 3.1 f 3.2 T 1 (SIX) T 1 (X) Ćwiczonko

83 Oryginał: Hector Garcia-Molina9. Transakcje83 Operacje wstawienia i usuwania Wstawienie A Z...

84 Oryginał: Hector Garcia-Molina9. Transakcje84 Zmiany w regułach zakładania zamków (1) Zdobądź zamek wyłączny na A, gdy usuwasz A (2) Po wstawieniu A wykonująca ją transakcja Ti otrzymuje zamek wyłączny na A

85 Oryginał: Hector Garcia-Molina9. Transakcje85 Fantomy Ale nadal jest źle: Fantomy Przykład: relacja R (E#,Name,…) więzy: E# jest kluczem zamki zakładane na krotki RE#Name…. o155Smith o275Jones

86 Oryginał: Hector Garcia-Molina9. Transakcje86 T 1 : Wstaw do R T 2 : Wstaw do R T 1 T 2 S 1 (o 1 ) S 2 (o 1 ) S 1 (o 2 ) S 2 (o 2 ) Sprawdź więzy Wstaw o 3 [99,Gore,..] Wstaw o 4 [99,Bush,..]...

87 Oryginał: Hector Garcia-Molina9. Transakcje87 Rozwiązanie Użyj wielorakiej ziarnistości Przed wstawieniem Q, założ zamek na rodzic(Q) w trybie X R1 t1t1 t2t2 t3t3

88 Oryginał: Hector Garcia-Molina9. Transakcje88 Powrót do przykładu T 1 : Wstaw T 2 : Wstaw T 1 T 2 X 1 (R) Sprawdź więzy Wstaw U(R) X 2 (R) Sprawdź więzy Ups! E# = 99 już jest w R! Uśpienie transakcji

89 Oryginał: Hector Garcia-Molina9. Transakcje89 Zamiast zamka na R, załóż zamek na indeks Przykład: R Indeks 0

90 Oryginał: Hector Garcia-Molina9. Transakcje90 Przykład A B C D EF wszystkie obiekty pobierane przez korzeń za pośrednictwem wskaźników zamek T 1 czy możemy zwolnić zamek na A, gdy już go nie potrzebujemy??

91 Oryginał: Hector Garcia-Molina9. Transakcje91 Pomysł: drabinka A B C D EF zamek T 1

92 Oryginał: Hector Garcia-Molina9. Transakcje92 Dlaczego to działa? Załóżmy, że T i zaczyna od korzenia; zamek X T i T j T i zakłada zamek na korzeń przed T j Działa też gdy nie zawsze zaczynamy od korzenia Korzeń Q T i T j

93 Oryginał: Hector Garcia-Molina9. Transakcje93 Reguły protokołu zamków X na drzewach (1) Pierwszy zamek T i może być na czymkolwiek (2) Potem, Ti może zalozyc zamek na węzeł Q tylko jeśli ma zamek na rodzicu Q (3) Zamki można zdjąć w dowolnej chwili (4) Gdy T i zdejmie zamek z Q, nie może ponownie założyć zamka na Q

94 Oryginał: Hector Garcia-Molina9. Transakcje94 Protokoły zamków na drzewach mogą być stosowane do indeksów na B+drzewach Np. w czasie wstawienia, nie zdejmuj zamka na rodzicu, dopóki nie masz pewności, że nie musisz podzielic jakichś jego dzieci Korzeń

95 Oryginał: Hector Garcia-Molina9. Transakcje95 Optymistyczne zamki Transakcje mają trzy fazy: (1) Odczyt –Wszystkie dane są odczytywane –Zapisy wykonywane w przestrzeni tymczasowej –Nie zakłada się zamków (2) Walidacja –Sprawdź, czy plan do tej pory szeregowalny (3) Zapis –Jeśli walidacja OK, zapisz zmiany do bazy

96 Oryginał: Hector Garcia-Molina9. Transakcje96 Główna idea Walidacja jest atomowa Jeśli T 1, T 2, T 3, … jest kolejnością walidowania, to otrzymany plan jest równoważny konfliktowo planowi P s = T 1 T 2 T 3...

97 Oryginał: Hector Garcia-Molina9. Transakcje97 Implementacja walidacji SZBD pamięta dwa zbiory: FIN = tranksakcje, które skończyły fazę 3 (i wszystko już skończyły) VAL = tranksakcje, które udanie skończyły fazę 2 (walidację)

98 Oryginał: Hector Garcia-Molina9. Transakcje98 Przykład tego, co walidacja wyklucza RS(T 2 )={B} RS(T 3 )={A,B} WS(T 2 )={B,D} WS(T 3 )={C} czas Początek T 2 T 2 zwalidowana T 3 zwalidowana = Początek T 3

99 Oryginał: Hector Garcia-Molina9. Transakcje99 T 2 kończy fazę 3 Przykład tego, co walidacja wyklucza RS(T 2 )={B} RS(T 3 )={A,B} WS(T 2 )={B,D} WS(T 3 )={C} czas Początek T 2 T 2 zwalidowana T 3 zwalidowana = dopuszcza Początek T 3

100 Oryginał: Hector Garcia-Molina9. Transakcje100 Inna sytuacja wykluczona przez walidację RS(T 2 )={A} RS(T 3 )={A,B} WS(T 2 )={D,E} WS(T 3 )={C,D} czas T 2 zwalidowana T 3 zwalidowana koniec T 2 ŹLE: w 3 (D) w 2 (D)

101 Oryginał: Hector Garcia-Molina9. Transakcje101 koniec T 2 Inna sytuacja wykluczona przez walidację RS(T 2 )={A} RS(T 3 )={A,B} WS(T 2 )={D,E} WS(T 3 )={C,D} czas T 2 zwalidowana T 3 zwalidowana dopuszczona koniec T 2

102 Oryginał: Hector Garcia-Molina9. Transakcje102 Reguły walidacji dla T j (1) Gdy T j zaczyna fazę 1: ignoruj(T j ) FIN (2) Przy walidacji T j jeśli poprawna(T j ), to [ VAL VAL U {T j }; wykonaj fazę 3 (zapis); FIN FIN U {T j } ]

103 Oryginał: Hector Garcia-Molina9. Transakcje103 poprawna (T j ) Dla każdej T i VAL - ignoruj(T j ) rób jeśli [ WS(T i ) RS(T j ) lub ( T i FIN i WS(T i ) WS(T j ) )], zwróć fałsz; zwróć prawdę;

104 Oryginał: Hector Garcia-Molina9. Transakcje104 Ćwiczonko T: RS(T)={A,B} WS(T)={A,C} V: RS(V)={B} WS(V)={D,E} U: RS(U)={B} WS(U)={D} W: RS(W)={A,D} WS(W)={A,C} początek walidacja koniec

105 Oryginał: Hector Garcia-Molina9. Transakcje105 Optymistyczne zamki Przydatne, gdy –Rzadkie konflikty –Jest nadmiar zasobów systemowych –Wymagania/więzy czasu rzeczywistego


Pobierz ppt "Systemy zarządzania bazami danych 9. Transakcje. Oryginał: Hector Garcia-Molina9. Transakcje2 Współbieżność, wielodostęp T 1 T 2 …T n BD (więzy integralności)"

Podobne prezentacje


Reklamy Google