Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałStefan Pogoda Został zmieniony 11 lat temu
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); AB25 125 250 250
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); AB25 50 150 150
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); AB25 125 250 125 250250
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); AB25 125 250 50 150 250150
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); AB25 125 25 125125 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 T2 25 25 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) 150 250 150 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<E#<100 Indeks 100<E#<200 E#=2E#=5 E#=107 E#=109...
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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.