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)

Slides:



Advertisements
Podobne prezentacje
TRADYCYJNE METODY PLANOWANIA I ORGANIZACJI PROCESÓW PRODUKCYJNYCH
Advertisements

Przetwarzanie transakcyjne
Wycinanki - składanki czyli o mierze inaczej.
Wykład nr 8: Zakleszczenia
Macierzowa reprezentacja sieci
Grażyna Mirkowska PJWSTK 15 listopad 2000
Rachunek prawdopodobieństwa 2
Wykład 06 Metody Analizy Programów System Hoare
WYKŁAD 6. Kolorowanie krawędzi
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
Systemy rozproszone W. Bartkiewicz Wykład 11. Transakcje
sześcian, prostopadłościan, graniastosłup i ostrosłup
ALGORYTMY I STRUKTURY DANYCH
Grafika komputerowa Wykład 7 Krzywe na płaszczyźnie
Współprogramy III Ten wykład ma na celu pokazanie kolejnej ciekawej możliwości, którą oferują współprogramy. Wspólprogramy reprezentujące wyrażenia regularne.
Liczby Pierwsze - algorytmy
ZŁOŻONOŚĆ OBLICZENIOWA
Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie1 Systemy zarządzania bazami danych 8. Dzienniki i odtwarzanie.
WYKŁAD 5. Skojarzenia – ciąg dalszy
WYKŁAD 2. Kolorowanie wierzchołków
WYKŁAD 7. Spójność i rozpięte drzewa
WYKŁAD 8. Siła spójności Wierzchołek v nazywamy wierzchołkiem cięcia grafu G, gdy podgraf G-v ma więcej składowych spójności niż G. Krawędź e nazywamy.
GRAFY PLANARNE To grafy, które można narysować na płaszczyźnie tak, by krawędzie nie przecinały się (poza swoimi końcami). Na przykład K_4, ale nie K_5.
Dodawanie i odejmowanie wektorów
Rozwiązywanie układów
Sztuczna Inteligencja Reprezentacja wiedzy II Systemy produkcyjne Włodzisław Duch Katedra Informatyki Stosowanej UMK Google: W. Duch.
Wykład 11 Prowadzący: dr Paweł Drozda
Wykład 10 Prowadzący: dr Paweł Drozda
Materiały pomocnicze do wykładu
Wykład 3 Wojciech Pieprzyca
Redukcja sieci Petriego
ZARZĄDZANIE PROCESAMI
8. LOGIKA TEMPORALNA Składnia zdaniowej logiki temporalnej:
Zarządzanie transakcjami i odtwarzanie po awarii
Zarządzanie transakcjami Wykład S. Kozielski. Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną
Bazy Danych Wykład 1 S. Kozielski.
WYKŁAD 7. Spójność i rozpięte drzewa Graf jest spójny, gdy dla każdego podziału V na dwa rozłączne podzbiory A i B istnieje krawędź z A do B. Definicja.
Zależności funkcyjne.
TRANSAKCJE TYLKO ODCZYT TYLKO ZAPIS
minimalizacja automatów
T Zsuwanie się bez tarcia Zsuwanie się z tarciem powrót.
Stabilność Stabilność to jedno z najważniejszych pojęć teorii sterowania W większości przypadków, stabilność jest warunkiem koniecznym praktycznego zastosowania.
Nie taki diabeł straszny czyli o zadaniach: wykaż , uzasadnij , udowodnij Piotr Ludwikowski.
Zadanie programowania liniowego PL dla ograniczeń mniejszościowych
Rodzaje, przechodzenie grafu
Języki i automaty część 3.
Jak tworzyć algorytmy.? Sposób krok po kroku..
Projekt AS KOMPETENCJI jest współfinansowany przez Unię Europejską w ramach środków Europejskiego Funduszu Społecznego Program Operacyjny Kapitał Ludzki.
Technika optymalizacji
XML – eXtensible Markup Language
dr Łukasz Murowaniecki T-109
Wykład 7 Synchronizacja procesów i wątków
W ą t e k (lekki proces) thread.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 1: Wprowadzenie do baz danych.
ALGORYTMY Co to jest algorytm ? Cechy algorytmu Budowa algorytmów
Obliczalność czyli co da się policzyć i jak Model obliczeń sieci liczące dr Kamila Barylska.
Rynki aktywów. Różne ceny w okresie 1 i 2 u Cena konsumpcji w okresie 1 wynosi 1  Cena konsumpcji w okresie 2 wynosi p2, np. p2=p1(1+  gdzie 
sześcian, prostopadłościan, graniastosłup i ostrosłup
1 Zarządzanie transakcjami Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000.
Transakcje Przedmiot: Bazy Danych Prowadzący: mgr inż. Leszek Siwik Autorzy: Grzegorz Szymczyk Damian Wieczorek.
GRA CHOMP. Czym jest chomp? Jest to gra dla dwóch osób, rozgrywana na prostokątnej tablicy, zwanej „tabliczką czekolady”
WYKŁAD 5. Skojarzenia – ciąg dalszy Skojarzenie w grafie G to niezależny zbiór krawędzi (rozłączne, bez wspólnych końców). α’(G) – moc największego skojarzenia.
MODELOWANIE ZMIENNOŚCI CEN AKCJI
Systemy wspomagające dowodzenie twierdzeń
Metody Badań Operacyjnych Michał Suchanek Katedra Ekonomiki i Funkcjonowania Przedsiębiorstw Transportowych.
Zagadnienia transportowe Katedra Ekonomiki i Funkcjonowania Przedsiębiorstw Transportowych.
Przetwarzanie transakcyjne. Wprowadzenie (1) Baza danych – jest abstrakcyjnym odzwierciedleniem wybranego fragmentu rzeczywistości (ang. miniworld) mini.
Teoria sterowania Wykład /2016
Obwody elektryczne wykład z 14.12
Zarządzanie projektami
Zapis prezentacji:

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)

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

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

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

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

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

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

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

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

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

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

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 )

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

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ę

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)…

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

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.

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

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

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?

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) ?

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

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)

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

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.

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

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?

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

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

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

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

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)

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

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

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

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

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

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

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

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!

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: –, –,...

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

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)

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

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

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)

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

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) …

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?

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?

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)

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

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

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

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

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)

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

Oryginał: Hector Garcia-Molina9. Transakcje59 Zamki modyfikacyjne

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.

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

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

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...

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

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

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

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

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

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

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ść

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

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

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

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

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

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

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

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)

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

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

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

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

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

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

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

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,..]...

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

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

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...

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??

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

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

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

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ń

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

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...

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ę)

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

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

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)

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

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 } ]

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ę;

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

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