To tylko jedna z 10 stron tej notatki. Zaloguj się aby zobaczyć ten dokument.
Zobacz
całą notatkę
Zarządzanie współbieżnością
Pojęcie transakcji
Transakcja jest to pewien ciąg czynności na bazie danych (np. pojedyncze wyszukiwanie informacji). Transakcja może być zapisana z poziomu programu lub w trybie konwersacyjnym
Współbieżność w rozproszonej bazie danych
Zapewnienie szeregowalności zachowania transakcji w środowisku rozproszonym jest znacznie utrudnione. Wynika to z faktu, że transakcje mogą być wykorzystywane w różnych węzłach i mogą mieć dostęp do danych w wielu węzłach. Jeśli do sterowania współbieżnością zastosować metody blokowania, to zazwyczaj przesyła się o wiele więcej komunikatów dotyczących samego blokowania niż przenoszonych danych. Ponieważ przesyłanie nawet krótkich komunikatów jest kosztowne, w środowisku rozproszonym zalecana jest lepsza gruba ziarnistość blokowania; oznacza to, że jednostki do blokowania powinny być dużymi obiektami, być może całymi relacjami, tak by liczba blokad nakładanych na transakcję nie była duża. Zakłada się, że w środowisku rozproszonym istnieje wiele węzłów lub miejsc, w których mogą być przechowywane dane i wykonywane transakcje. Może istnieć wiele kopii każdej jednostki danych zapamiętanych w różnych węzłach i jeśli tak, to częścią problemu sterowania współbieżnością jest zapewnienie identyczności wszystkich kopii. Zakłada się dalej, że operacjami na BD są transakcje READ i WRITE oraz, że transakcja może zablokować jednostkę. Transakcje są dwufazowe - to znaczy mają zapewnione wszystkie blokady jednostek, których chciały, dokonują na nich tych akcji których powinny dokonać, a następnie zdejmują blokady. Blokowanie należy interpretować tak, jak gdyby transakcje pojawiały się w chwili, w której zapewniono jej wszystkie blokady. Pogwałcenie szeregowalności może wystąpić wtedy gdy jedna transakcja blokuje zapis, a druga blokuje całkowicie tę samą jednostkę w tym samym czasie.
Metody blokowania w rozproszonej bazie danych
Całkowite blokowanie wszystkich - blokada zapisu jednej
Zakładamy, że cała rozproszona baza danych znajduje się w określonej ilości węzłów i określona jednostka znajduje się w określonej ilości węzłów. Transakcja blokuje zapis jednostki A, gdy blokuje ona zapis dowolnej kopii tej jednostki. Transakcja całkowicie blokuje jednostki A, gdy całkowicie blokuje wszystkie jej kopie. Blokowanie zapisu można zapewnić dotąd, aż żadna transakcja nie blokuje całkowicie jednostki. Jednostka A nie może być jednocześnie blokowana całkowicie i blokadą zapisu. Wprowadzamy oznaczenia: n - liczba węzłów w bazie danych; dla każdej jednostki bazy danych jest n kopii jednostki. Rozważmy przepływ komunikatów w rozproszonej sieci. Gdy zakładamy blokadę na jednostkę A nie wiemy ile jest jej kopii. Aby wykonać WLOCK A musi być wysłana blokada zapisu do jednej kopii. Jeżeli ma być blokada całkowita, to trzeba wysłać komunikat do wszystkich węzłów zawierających jednostkę. Trzeba następnie czekać na odpowiedź z węzłów, że jest to możliwe. Potem przesyłamy nową wartość i komunikat o odblokowaniu. Komunikat przesyłający nową wartość będzie komunikatem długim. W rezultacie - przy blokowaniu całkowitym wysyłamy 3n komunikatów krótkich i n komunikatów długich. Jeżeli do komunikatu długiego dołączymy komunikat o odblokowaniu jednostki, to zaoszczędzimy 1n komunikatów krótkich (czyli będzie 2n komunikatów krótkich).Jeżeli żądanie blokady zapisu zostało odrzucone, to nie szukamy następnej kopii jednostki w bazie danych.
(…)
… zabezpieczenia przed awariami. Dotyczy to tylko scentralizowanych baz danych. Inne metody dotyczą systemów rozproszonych. Mówimy o awarii powodujących błędną interpretację danych i są odwracalne (do naprawy przez SZBD).
Aby zabezpieczyć system baz danych stosuje się metody:
Okresowe sporządzanie kopii BD bez wiedzy użytkowników,
Stworzenie kopii jest realizowanie jako odrębna transakcja na danych…
… n-k+2 jednostek. Ta metoda obowiązuje dal k>n/2 . Tak dobieramy k aby impas występował najrzadziej.
Metoda kopii pierwotnej Zakładamy , że zarządzanie blokadami jest powierzone konkretnemu węzłowi. W szczególnym przypadku jeden węzeł sieci odpowiada za zarządzanie blokadami w całej sieci. Wszystkie blokady są zakładane na kopii pierwotnej jednostki.
Metoda żetonu w formie pierwotnej
Modyfikacją powyższej jest metoda, która dodatkowo w węźle pierwotnym wydaje żetony (odczytu i zapisu). Są to inaczej uprawnienia przyznawane określonym węzłom sieci. Dla dowolnej jednostki A może istnieć jeden żeton zapisu i wiele żetonów odczytu. Żetony te są przekazywane z węzła do węzła. Posiadanie przez węzeł żetonu zapisu A może zapewnić transakcji wykonywanie w tym węźle zablokowania całkowitego lub zapisu…
… oznaczamy go jako 2PL lub Two Phase Locking. Polega on na tym, że każda transakcja przebiega w dwóch fazach: zablokowania i odblokowania, więc nie ma oddzielnego odblokowania. Moment założenia wszystkich blokad nazywa się punktem akceptacji. Zapis realizuje się dopiero w fazie odblokowania, a jednostka zostaje odczytana w fazie blokady. Można dodatkowo założyć, że jednostka zablokowana i zwolniona…
... zobacz całą notatkę
Komentarze użytkowników (0)