Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Systemy Rozproszone Synchronizacja 2
2
Wzajemne wykluczanie Problem:
Szereg procesów w systemie rozproszonym domaga się wyłącznego dostępu do jakiegoś zasobu. Podstawowe rozwiązania: scentralizowany serwer, w pełni rozproszone, bez wyraźnej topologii, w pełni rozproszone, z użyciem (logicznego) pierścienia.
3
Wzajemne wykluczanie : algorytm scentralizowany
Proces 1 prosi koordynatora o pozwolenie na wejście do obszaru krytycznego. Udziela się zgody Proces 2 pyta o pozwolenie na wejście do tego samego obszaru krytycznego. Koordynator nie odpowiada. Kiedy proces 1 opuszcza obszar krytyczny, to informuje o tym koordynatora, a tamten odpowiada 2
4
Wzajemne wykluczanie: Algorytm Lamporta(1)
- Wykorzystuje mechanizm synchronizacji zegarów lamporta -Zbiór żądań – zbiór procesów, od których wymagane są pozwolenia na wejście do sekcji krytycznej -Zbiór żądań w algorytmie Lamporta jest zbiorem wszystkich procesów -Każdy proces przechowuję kolejkę żądań sekcji krytycznej uszeregowanych według znaczników czasowych
5
Wzajemne wykluczanie: Algorytm Lamporta(2)
1. Żądanie sekcji krytycznej w procesie Pi - wysłanie żądania ze znacznikiem czasu(ts(i),i) do wszystkich procesów z zbioru Ri -dodanie żądania do kolejki -odesłanie odpowiedzi z znacznikiem czasu 2.Wejście do sekcji krytycznej gdy: -odpowiedz od wszystkich procesów Pj mają znaczniki czasowe (ts(j),i) większe od znacznika żądania -żądanie to jest na poczaątku kolejki żądającego 3. Zwalnianie sekcji krytycznej -wysłanie wiadomości ZWOLNIJ do innych procesów -usunięcie żądania z początku kolejki
6
Wzajemne wykluczanie:Algorytm Lamporta(3)
7
Wzajemne wykluczanie : Algorytm rozproszony (1)
Algorytm Ricarta & Agrawali Ten sam co Lamporta z tą róznicą że potwierdzenia nie są wysyłane. Zamiast tego, odpowiedzi (tj. pozwolenia) udzielane są tylko wtedy kiedy: Proces-odbiorca nie jest zainteresowany w zasobie dzielonym lub Proces-odbiorca czeka na dzielony zasób, ale ma niższy priorytet (wynikający np. z porównania znaczników czasowych). w pozostałych przypadkach, udzielenie odpowiedzi jest odkładane, a są wykonywane jakieś lokalne działania.
8
Wzajemne wykluczanie : Algorytm rozproszony (2)
Dwa procesy chcą wejść do tego samego obszaru krytycznego w tym samym momencie. Proces 0 ma najniższy znacznik czasowy, więc wygrywa. Kiedy proces 0 zrobił swoje, to wysyła również OK, więc 2 może teraz wejść do obszaru krytycznego.
9
Wzajemne wykluczanie: Algorytm Meakawy(1)
Algorytm Maekawy różni się od poprzednich algorytmów 1) Jeżeli proces chce wejśc do sekcji krytycznej, potrzebuje pozwolenia tylko od pewnego podzbioru wszystkich procesów 2)Proces może naraz wysłąć tylko jedną odpowiedź
10
Wzajmne wykluczanie: Algorytm Meakwy(2)
Warunki które musi spełniać zbiór żądań(N-liczba procesów): M1: (Vi Vj : i != j, 1 <= i,j <= N :: Ri n Rj != 0) M2: (Vi : 1 <= i <= N :: Si E Ri) M3: (Vi :1 <= i <= N:: |Ri| = K) M4: Dowolony proces Pj zawarty jest w K zbiorach Ri, 1<=i,j<=N Meakawa ustalił następująca relację pomiędzy N i K: N =K(K-1)+1 Realacja ta daje: |Ri| = sqrt(N)
11
Wzajemne wykluczanie: Algorytm Meakawy(3)
1. Żądanie sekcji krytycznej -Wysłanie przez Pi żądania do wszystkich procesów w Ri - Odesłanie odpowiedzi lub odłożenie żądania do kolejki 2. Wejście do sekcji po otrzymaniu odpowiedzi od wszystkich procesów ze zbioru Ri 3. Zwalnianie sekcji krytycznej -Wysyłanie wiadomości ZWOLNIJ do wszystkich procesów z Ri -Wysyłanie odpowiedzi do kolejnych procesów,które są w kolejce
12
Wzajemne wykluczanie: Algorytm Meakwy(4)
13
Wzajemne wykluczanie : Algorytm Token Ring
organize processes in a logical ring, and let a token be passed between them. Procesy organizuje się w logiczny pierścień, między nimi może być przekazywany żeton (token). Ten, który ma żeton, może wejść do obszaru krytycznego (jeżeli ma takie życzenie). Nieuporządkowana grupa procesów w sieci. Pierścień logiczny zorganizowany programowo.
14
Wzajemne wykluczanie:Algorytm Raymonda(1)
-Algorytm Raymonda używa struktury drzewa -Korzeniem drzewa jest proces,który posiada token pozwalający na wejście do sekcji krytycznej -Każdy proces dysponuje zmienną posiadacz, która wskazuje na kolejny proces na ścieżce prowadzącej do korzenia drzewa -Struktura zmienia się dynamiczne w zależności od posiadacza tokenu -Każdy proces w drzewie przechowuje kolejkę żądań sąsiednich procesów, które nie posiadały jeszcze tokenu
15
Wzajemne wykluczanie:Algorytm Raymonda(2)
1. Żądanie sekcji krytycznej -wysyłanie żądania wzdłuż ścieżki do korzenia i dodanie żądania do kolejki -odebranie żądania, wstawienie go do kolejki i przesłanie dalej wzdłuż ścieżki do korzenia -wysłanie żetonu przez korzeń do ubiegającego się procesu oraz aktualizacja zmiennej 'posiadacz' -odebranie tokenu, wyjęcie żądania z kolejki i wysłanie do procesu, który jest wskazany w tym żądaniu, aktualizacja zmiennej 'posiadacz'
16
Wzajemne wykluczanie:Algorytm Raymonda(3)
2. Proces wchodzi do sekcji krytycznej pod warunkiem, że otrzymał token, a jego żądanie jest na szczycie jego kolejki żądań 3.Zwalnianie sekcji krytycznej -przesłanie tokenu i aktualizacja kolejki oraz zmiennej 'posiadacz' -ewentualne przesłanie żądania, jeżeli kolejka żądań jest niepusta
17
Wzajemne wykluczanie: Algorytm Raymonda(4)
18
Wzajemne wykluczanie : porównanie
Algorithm # Komunikatów na wejście/wyjście Opóźnienie przed wejściem (mierzone liczbą komunikatów) Problemy Scentralizowany 3 2 Awaria koordynatora Rozproszony 2 ( n – 1 ) Awaria dowolnego procesu Token ring 1 to 0 to n – 1 Utrata żetonu, awaria procesu Porównanie trzech algorytmów wzajemnego wykluczania
19
Rozproszone transakcje
Model transakcji Właściwości ACID Klasyfikacja transakcji płaskie transakcje, zagnieżdżone transakcje, rozproszone transakcje. Sterowanie współbieżnością serializowalność, techniki synchronizacji blokowanie dwu-fazowe, pesymistyczne porządkowanie wg znaczników czasowych, optymistyczne porządkowanie wg znaczników czasowych.
20
Aktualizowanie taśmy głównej toleruje awarie
Model transakcji (1) Aktualizowanie taśmy głównej toleruje awarie
21
Przykłady operacji dla transakcji
Model transakcji (2) Przykłady operacji dla transakcji Operacja Opis BEGIN_TRANSACTION Zaznaczenie początku transakcji END_TRANSACTION Zakończenie transakcji i próba jej zatwierdzenia ABORT_TRANSACTION Likwidacja transakcji, odtworzenie starych wartości READ Czytanie danych z pliku, tabeli, lub inaczej WRITE Zapisywanie danych do pliku, tabeli, lub inaczej
22
Model transakcji (3) Transakcja potwierdzonych rezerwacji trzech lotów
BEGIN_TRANSACTION reserve WP -> JFK; reserve JFK -> Nairobi; reserve Nairobi -> Malindi; END_TRANSACTION (a) BEGIN_TRANSACTION reserve WP -> JFK; reserve JFK -> Nairobi; reserve Nairobi -> Malindi full => ABORT_TRANSACTION (b) Transakcja potwierdzonych rezerwacji trzech lotów Transakcja zaniechana wskutek niemożności zarezerwowania trzeciego lotu
23
Właściwości ACID Model: Transakcja - zbiór operacji na stanie obiektu (baza danych, złożony obiekt, itd), które spełnia następujące właściwości: Niepodzielność (Atomicity): Wszystkie operacje albo się udają, albo żadna z nich. Jeżeli transakcja się nie powiedzie, stan obiektu pozostanie bez wpływu ze strony transakcji. Spójność (Consistency): Transakcja realizuje ważne przejście stanu. Nie wyklucza to możliwości nieważnych, przejściowych stanów w trakcie realizacji transakcji. Izolacja (Isolation): Współbieżne transakcje nie koliduje ze sobą. Każdej transakcji T wydaje się, że inne transakcje występują albo przed T, albo po T, ale nigdy oba. Trwałość (Durability): Po realizacji transakcji, jej skutki są stałe: zmiany stanu przetrwają awarie.
24
Klasyfikacja transakcji
Płaskie transakcje: Najbardziej znany typ: sekwencja operacji która spełnia właściwości ACID. Transakcje zagnieżdżone: Hierarchia transakcji, która pozwala (1) współbieżnie przetwarzać pod- transakcje, oraz (2) odtworzenie w ramach pod- transakcji. Rozproszone transakcje: (Płaska) transakcja wykonywana na rozproszonych danych => często implementowana jako dwupoziomowa zagnieżdżona transakcja z jedną pod-transakcją przypadającą na węzeł.
25
Płaskie transakcje - ograniczenia
nie pozwalają na zatwierdzenie lub zaniechanie częściowych wyników, mocna strana właściwości niepodzielności płaskiej transakcji jest jednocześnie jej słabą stroną, rozwiązanie: użycie zagnieżdżonych transakcji, trudne scenariusze: pod-transakcja zatwierdzona ale nadrzędna transakcja zaniechana, jeśli pod-transakcja wnioskuje zatwierdzenie i rozpoczęła się nowa pod-transakcja, to druga powinna mieć wyniki pierwszej pod-transakcji.
26
Rozproszone transakcje
zagnieżdżona transakcja logicznie jest dekomponowana na hierarchię pod-transakcji, rozproszona transakcja logicznie płaska, niepodzielna transakcja która operuje na rozproszonych danych. Osobne rozproszone algorytmy potrzebne do: zarządzania blokowaniem danych, zatwierdzania całej transakcji.
27
Implementacja transakcji
Prywatna przestrzeń robocza użycie prywatnej przestrzeni roboczej, za której pośrednictwem klient dostaje własną kopię (części) bazy danych. Kiedy coś jest nie tak kopia jest likwidowana, w przeciwnym wypadku zatwierdza się zmiany w oryginale, optimalizacja poprzez nie pozyskiwanie wszystkiego. Rejestrowanie z wyprzedzeniem (writeahead log) mechanizm w którym zapisywane zmiany umożliwiają wycofanie (roll back) gdy coś dzieje się nie tak.
28
Implementacja transakcji: Prywatna przestrzeń robocza
Indeks i bloki dyskowe trzy-blokowego pliku Sytuacja po zmodyfikowaniu przez transakcję bloku 0 i dodaniu bloku 3 Stan po zatwierdzeniu
29
Implementacja transakcji : rejestracja z wyprzedzeniem
x = 0; y = 0; BEGIN_TRANSACTION; x = x + 1; y = y + 2 x = y * y; END_TRANSACTION; (a) Rejestr [x = 0 / 1] (b) [y = 0/2] (c) [x = 1/4] (d) a) Transakcja b) – d) Rejestr przed wykonaniem każdej instrukcji
30
Sterowanie współbieżnością (1)
Organizacja zarządców obsługi transakcji
31
Sterowanie współbieżnością (2)
Organizacja zarządców obsługi rozproszonych transakcji.
32
Serializowalność (1) a) – c) Trzy transakcje T1, T2, i T3
BEGIN_TRANSACTION x = 0; x = x + 1; END_TRANSACTION (a) BEGIN_TRANSACTION x = 0; x = x + 2; END_TRANSACTION (b) BEGIN_TRANSACTION x = 0; x = x + 3; END_TRANSACTION (c) Plan 1 x = 0; x = x + 1; x = 0; x = x + 2; x = 0; x = x + 3 Dopuszczalny Plan 2 x = 0; x = 0; x = x + 1; x = x + 2; x = 0; x = x + 3; Plan 3 x = 0; x = 0; x = x + 1; x = 0; x = x + 2; x = x + 3; Niedozwolony (d) a) – c) Trzy transakcje T1, T2, i T3 d) Możliwe plany
33
Serializowalność (2) Rozważmy zbiór E transakcji T1, ..., Tn. Celem jest przeprowadzenie serializowalnego wykonania E: transakcje w E są wykonywane ewentualnie współbieżnie zgodnie z jakimś planem S. plan S jest ekwiwalentem jakiegoś w pełni uporządkowanego wykonania T1, ..., Tn. Ponieważ nie wchodzimy w szczegóły obliczeń w ramach transakcji, transakcję można zamodelować jako zarejestrowane operacje read i write. Dwie operacje OPER( Ti, x) i OPER( Tj, x) mogą działać na tym samym elemencie danych x, i na poziomie zarządcy danych na podstawie zbioru rekordów można wywnioskować konflikt(y): konflikt read-write (rw): jedna operacja to read, a druga to write na x, Konflikt write-write (ww): obie operacje to write na x.
34
Techniki synchronizacji
Dwufazowy zamek Przed czytaniem lub zapisem elementu danych, musi być uzyskany zamek. Po oddaniu zamka, transakcja nie może uzyskać innych żadnych zamków. Uporządkowanie wg znaczników czasowych Operacje w transakcji są wyposażone w znaczniki czasu, zarządcy danych są zmuszeni do obsługi operacji w kolejności znaczników czasowych. Optimistyczne sterowanie Don't prevent things from going wrong, but correct the situation if conflicts actually did happen. Basic assumption: you can pull it off in most cases. Nie wtrącamy się, jak coś jest nie tak, ale naprawiamy sytuację, jeżeli konflikty faktycznie miały miejsce. Podstawowe założenie: można odkładać synchronizację w większości przypadków.
35
Dwufazowe blokowanie (1)
klienci wykonują w ramach transakcji tylko operacje READ i WRITE, zamki są przydzielane i zwalniane tylko przez planistę, celem polityki blokowania jest jest unikanie konfliktów między operacjami. gdy klient żąda wykonania OPER(Ti,x), planista sprawdza czy nie zachodzi konflikt z operacją OPER(Tj,x) od jakiegoś innego klienta. Jeśli konflikt nie grozi, to jest udzielany LOCK(Ti,x), w przeciwnym wypadku odkładamy wykonywanie OPER(Ti,x). konfliktujące operacje są wykonywane w tej samej kolejności w jakiej są udzielane zamki. jeśki LOCK(Ti,x) został udzielony, nie oddajemy zamka póki OPER(Ti,x) nie zostanie wykonana przez zarządcę danych. jeśli RELEASE(Ti,x) miało miejsce, Ti nie dostanie więcej zamków.
36
Dwufazowe blokowanie (2)
37
Dwufazowe blokowanie (3)
Scentralizowane 2PL: Jedno stanowisko zarządza wszystkimi blokadami, 2PL z kopią podstawową: Dla każdej danej określamy jej kopię podstawową do obsługi jej zamków. Dane niekonieczne są replikowane, Rozproszone 2PL: Zakładamy że dane mogą być repikowane. Planiści dbają nie tylko o nakładanie i zdejmowanie zamków,, ale też o przekazywanie operacji lokalnym zarządcom danych. Problemy możliwe zakleszczenie - kolejność żądań, wykrywanie zakleszczeń, schemat timeout’u , kaskadowe zaniechania - ścisłe dwufazowe blokowanie.
38
Dwufazowe blokowanie (4)
Ścisłe dwufazowe blokowanie
39
Pesymistyczne porządkowanie wg znaczników czasu (1)
każda transakcja T posiada znacznik czasowy ts(T), znaczniki czasowe są unikatowe (algorytm Lamport‘a), każda operacja, stanowi część T, ze znacznikiem czasowym ts(T), każda dana x ma znacznik czasowy tsRD(x) operacji read oraz znacznik czasowy tsWR(x) operacji write jeśli operacje wchodzą w konflikt, zarządca danych przetwarza operację z najmniejszym znacznikiem czasowym, w porównaniu z blokowaniem: zaniechania są możliwe ale zakleszczenia są wyeliminowane. Przykład: a. – d. – T2 probuje zapisać daną, e. – f. – T2 próbuje odczytać daną.
40
Pesymistyczne porządkowanie wg znaczników czasu (2)
41
Optymistyczne porządkowanie wg znaczników czasu
konflikty są stosunkowo rzadkie, idziemy do przodu z realizacją działań, konflikty rozwiążemy później, rejestrujemy które elementy danych były czytane i zapisywane (prywatne obszary robocze, kopie), sprawdamy możliwe konflikty w momencie zatwierdzania, brak zakleszczeń przy maksymalnej równoległości, w warunkach dużego obciążenia, prawdopodobieństwo awarii (i zaniechania) znacznie wzrasta, głównie w systemach nierozproszonych, rzadko stosowane w systemach komercyjnych lub prototypowych.
42
Zakleszczenia -Zakleszczenia pojawiają się, gdy proces chce mieć na wyłączność dostęp do pewnego zasobu, ale nie może go otrzymać i w wyniku zostaje zablokowany Warunki konieczne zakleszczenia: -wzajemne wykluczanie -istnienie procesu który blokuje zasób, a jednocześnie sam czeka na zasób blokowany przez inny proces -brak wywłaszczania zasobów -czekanie cykliczne
43
Zakleszczenia: Strategie postępowania z zakleszczeniami
Sposoby postępowania z zakleszczeniami -niedopuszczanie do zakleszczeń -dopuszczanie do zakleszczeń i późniejsze ich usuwania -ignorowanie zakleszczeń Metody niedopuszczania do zakleszczeń -zapobieganie zakleszczeniom -unikanie zakleszczeń
44
Zakleszczenia: zapobieganie zakleszczeniom w systemach rozproszonych
-Przydział priorytetów dla procesów przy dostępie do zasobów -Zastosowanie znaczników czasowych – możliwość pozbycia się problemu zagłodzenia procesów o niskich priorytetach. Metody: 1)Czekanie albo śmierć 2) Zranienie albo czekanie -Wadą powyższych algorytmów jest występowanie niepotrzebnych wywłąszczeń
45
Zakleszczenia:Wykrywanie zakleszczeń
-Do wykrywania zakleszczeń używa się grafu oczekiwania, który reprezentuje stan przydziału zasobów -Jeżeli stan przedstawiony przez graf dotyczy całego systemu rozproszonego mówimy o globalnym grafie oczekiwania -Jeżeli stan, który reprezentuje graf dotyczy tylko danego stanowiska, to jest to lokalny graf oczekiwania
46
Zakleszczenia:Podejście scentralizowane(1)
-Kontrole nas systemem sprawuje koordynator wykrywania zakleszczeń -Zadaniem koordynatora jest konstruowanie globalnego grafu oczekiwania na podstawie informacji o lokalnych grafach oczekiwania i wykrywanie zakleszczeń -sposoby konstruowania globalnego grafu oczekiwania: 1)przy każdej zmianie grafów lokalnych 2)po uzbieraniu odpowiedniej liczby zmian w grafach lokalnych 3)przy uruchamianiu algorytmu wykrywania Zakleszczeń -Problem fałszywych cykli i niepotrzebnych wywołań
47
Zakleszczenia:Podejście scentralizowane (2)
48
Zakleszczenia:Podejście Rozproszone(1)
-Za wykrywanie zakleszczeń jest odpowiedzialnych wiele procesów -W podejściu rozproszonych do lokalnego grafu oczekiwania wprowadzono dodatkowy wierzchołek 'Pzew', który reprezentuje powiązanie lokalnych procesów z zasobami przechowywanymi przez procesy na innych stanowiskach -Każde stanowisko buduje pewną część globalnego grafu oczekiwania -Wystąpienie zakleszczenie jest stwierdzane w momencie wykrycia na którymś ze stanowisk cyklu, który nie zawiera wierzchołka 'Pzew'
49
Zakleszczeni: Podejście rozproszone(2)
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.