Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Distributed systems / Naming 1 Systemy rozproszone Synchronizacja 1. Synchronizacja zegarów 2. Zegary logiczne 3. Stan globalny 4. Algorytmy elekcji 5.

Podobne prezentacje


Prezentacja na temat: "Distributed systems / Naming 1 Systemy rozproszone Synchronizacja 1. Synchronizacja zegarów 2. Zegary logiczne 3. Stan globalny 4. Algorytmy elekcji 5."— Zapis prezentacji:

1 Distributed systems / Naming 1 Systemy rozproszone Synchronizacja 1. Synchronizacja zegarów 2. Zegary logiczne 3. Stan globalny 4. Algorytmy elekcji 5. Wzajemne wykluczanie

2 Systemy rozproszone / Synchro 2 Synchronizacja zegarów Gdy każda maszyna ma swój zegar, zdarzenie które wystąpiło po innym zdarzeniu może tym nie mniej mieć wcześniejszy znacznik czasowy Synchronizacja – ustalenie kolejności czasowej dla zbioru zdarzeń wygenerowanych przez współbieżne procesy.

3 Systemy rozproszone / Synchro 3 Zegary zegar, rejestry skojarzone z kryształem: licznik podtrzymujący rejestr, przerwanie wygenerowane gdy licznik dociera do 0, każde przerwanie nazywane jednym tyknięciem zegara, nie sposób zapewnić żeby dwa kryształy pracowały na tej samej częstotliwości, po wyjściu z synchronizacji, różnica wartości zegarów nazywana jest odchyleniem wskazań zegara (clock skew)

4 Systemy rozproszone / Synchro 4 Średni dzień słoneczny Obliczenie średniego dnia słonecznego – okres obracania się ziemi nie jest stały.

5 Systemy rozproszone / Synchro 5 Zegary fizyczne (1) Górowanie – moment gdy Słońce osiąga najwyższy punkt na nieboskłonie. Dzień słoneczny – odcinek czasu między dwoma kolejnymi górowaniami słońca. Sekunda słoneczna – 1/86400 część dnia słonecznego. Średnia sekunda słoneczna (300 mln lat temu rok miał ok. 400 dni)

6 Systemy rozproszone / Synchro 6 Zegary fizyczne (2) Czasami potrzebujemy dokładny czas, a nie tylko uporządkowanie. Rozwiązanie : Universal Coordinated Time (UTC): na podstawie liczby przejść w ciągu sekundy w atomie cezu 133 (bardzo dokładne). w chwili obecnej, czas rzeczywisty jest przyjmowany jako średnia z około 50 cezowych-zegarów na całym świecie. wprowadza od czasu do czasu przestępną sekundę w celu poprawienia sytuacji że dni są coraz dłuższe. NIST zarządza krótkofalową stacją radiową o literach wywoławczych WWV z Fort Collins w Kolorado (krótki impuls na początku każdej sekundy UTC). UTC jest nadawany przez krótkie fale i satelity. Satelity mogą działać z dokładnością do ± 0,5 ms. Czy to rozwiąże wszystkie nasze problemy? Don't we now have some global timing mechanism? Czy nie mamy jakiegoś globalnego mechanizmu zegarowego? Ten typ mechanizmu pozostaje zbyt gruboziarnistym uporządkowania każdego zdarzenia.

7 Systemy rozproszone / Synchro 7 Zegary fizyczne (3) Sekundy TAI mają stałą długość, w odróżnieniu od sekund słonecznych. Sekundy przestępne wprowadzane tylko wtedy, kiedy potrzebujemy się zsynchronizować z czasem słonecznym. TAI – Międzynarodowy czas atomowy (Temps Atomique International) sekund TAI są o ok. 3 ms krótsze od średniego dnia słonecznego, UTC – TAI z sekundami przestępnymi kiedy różnica między czasem TAI i czasem słonecznym wzrośnie do 800 ms.

8 Systemy rozproszone / Synchro 8 Zegary fizyczne (4) Problem: Załóżmy, że mamy rozproszony system z UTC odbiornikiem gdzieś wewnątrz systemu, mamy zatem upowszechnić czas na każdy komputer. Podstawowa zasada: każda maszyna ma czasomierz, który generuje przerwanie H razy na sekundę. w maszynie p jest zegar tykający przy każdym przerwaniu czasomierza. Oznaczmy wartość tego zegara przez Cp (t), gdzie t jest czasem UTC. idealnie, mamy, że dla każdej maszyny p, Cp (t) = t, lub, innymi słowy, dC / dt = 1 Idealnie: dC / dt = 1W praktyce: 1 - dC / dt 1 + w celu ochrony przed różnicą większą niż jednostek czasu => zsynchronizować co najmniej raz na / (2 ) sekund.

9 Systemy rozproszone / Synchro 9 Algorytmy synchronizacji zegarów Relacja między czasem zegarowym i UTC gdy zegary chodzą w różnym tempie

10 Systemy rozproszone / Synchro 10 Zasady synchronizacji zegarów Zasada I: Każda maszyna wysyła do serwera czasu pytanie o aktualny czas nie częściej niż co / (2 ) sekund. jest potrzebna dokładna miara czasu obrócenia się komunikatu, włącznie z przetwarzaniem przerwania i nadchodzących komunikatów. Zasada II: Załóżmy, że serwer czasu może skanować okresowo wszystkie maszyny, obliczać średnią, oraz informować każdą maszynę jak należy dostroić czas adjust względem jej czasu bieżącego. jest prawdopodobne, że każda maszyna zostanie zsynchronizowana Fundamentalny problem: czas nie może płynąć wstecz, stąd zmiany trzeba wprowadzać stopniowo

11 Systemy rozproszone / Synchro 11 Algorytmy synchronizacji zegarów Algorytmy synchronizacji zegarów: Algorytm Cristiana Algorytm Berkeley Algorytmy uśredniania

12 Systemy rozproszone / Synchro 12 Algorytm Cristiana Uzyskiwanie aktualnego czasu od serwera czasu (T1 – T0) / 2 komunikaty z różnicą T1 – T0 powyżej progu są odrzucane jako ofiary obciążenia sieci, komunikat który wraca najszybciej ma najbardziej dokładny czas.

13 Systemy rozproszone / Synchro 13 Algorytm Berkeley a) Demon czasu odpytuje wszystkie pozostałe maszyny nt. ich czasu b) Maszyny wysyłają odpowiedź c) Demon czasu instruuje wszystkie maszyny jak dostroić zegary

14 Systemy rozproszone / Synchro 14 Algorytmy uśredniania dotychczasowe metody bardzo scentralizowane, zdecentralizowane algorytmy: dividing time into fixed-length resynchronization intervals podział czasu na odstępy o ustalonej długości resynchronizacji, T0 + (i + 1)R, gdzie R jest parametrem systemu, maszyny rozgłaszają swój aktualny czas, zgodnie z ich zegarami, inna opcja: poprawianie każdej wiadomości, uwzględniając czas propagacji od źródła, Internet: Network Time Protocol (NTP), dokładność w zakresie 1-50 ms.

15 Systemy rozproszone / Synchro 15 Logical Clocks często, wystarczy, że wszystkie maszyny zgadzają się na ten sam czas, liczy się wewnętrzna spójność, a nie, czy są one bliskie czasowi rzeczywistemu, co więcej liczy się nie czy wszystkie procesy są zgodne co do aktualnego czasu, tylko raczej czy jest zgoda odnośnie porządku występowania zdarzeń, algorytm Lamporta, który synchronizuje zegary logiczne, rozszerzenie podejścia Lamporta, o nazwie znaczniki wektorowe

16 Systemy rozproszone / Synchro 16 The Happened-Before Relationship Po pierwsze musimy wprowadzić pojęcie uporządkowania zanim zaczniemy porządkować. Relacja happened-before na zbiorze zdarzeń w systemie rozproszonym jest najmniejszą relacją spełniającą: jeśli a i b są dwoma zdarzeniami w tym samym procesie, i a występuje przed b, to a -> b. jeśli a wysyła komunikat, a b odbiera tenże komunikat, to a -> b. jeśli a -> b i b -> c, to a -> c. tym samym wprowadza się częściowe uporządkowania zdarzeń w systemie ze współbieżnymi procesami. zdarzenia współbieżne – nic nie można powiedzieć kiedy zdarzenia wystąpiły lub które zdarzenie wystąpiło jako pierwsze.

17 Systemy rozproszone / Synchro 17 Zegary logiczne (1) Problem: Jak zapewnić globalne spojrzenie na zachowanie systemu, które jest zgodne z relacją happened-before? Rozwiązanie: dołączyć znacznik czasowy C(e) do każdego zdarzenia e, które spełniają następujące właściwości: P1: Jeśli A i B są dwa zdarzenia w tym samym procesie, a -> b, to żądamy, aby C (a) zapewnić spójny zestawu logicznych zegarów, jeden na każdy proces.

18 Systemy rozproszone / Synchro 18 Zegary logiczne (2) Każdy proces P i utrzymuje lokalny licznik C i i dostosowuje ten licznik zgodnie z następującymi zasadami : 1. Dla dowolnych dwóch kolejnych zdarzeń, które odbywają się w ramach P i, C i jest zwiększany o Za każdym razem, kiedy wiadomość m jest wysyłana przez proces P i, wiadomość otrzymuje znacznik czasowy T m = C i. 3. Gdy wiadomość m została odebrana przez proces P j, P j dostosowuje swój lokalny licznik C j : C j <- max{ C j + 1, T m + 1 }. własność P1 spełniona przez 1., własność P2 spełniona przez 2. i 3.

19 Systemy rozproszone / Synchro 19 Zegary logiczne (3) Przykład algorytmu Lamporta

20 Systemy rozproszone / Synchro 20 Globalne uporządkowanie z zegarami logicznymi Problem: może się zdarzyć że dwa zdarzenia zajdą w tym samym czasie. W tej sytuacji przydatne jest dołączenie numeru procesu do zdarzenia: P i oznacza zdarzenie e przy pomocy C i (e).i Wtedy: Ci(a).i wystąpiło przed Cj(b).j wtedy i tylko wtedy jeśli: 1. Ci(a) < Cj(b)lub 2. Ci(a) = Cj(b) oraz i < j

21 Systemy rozproszone / Synchro 21 Przykład: Globalnie uporządkowane rozgłaszanie Aktualizacja zreplikowanej BD i pozostawienie jej w niespójnym stanie sytuacja ta wymaga całkowicie uporządkowanego rozgłaszania - do zrealizowania ze znacznikami czasowymi Lamporta, każda wiadomość zawiera zawsze znacznik czasowy z bieżącym czasem logicznym nadawcy, odebrana wiadomość umieszczona do lokalnej kolejki, uporządkowanej wg znaczników czasowych, odbiorca wysyła potwierdzenia do reszty, proces może dostarczyć zakolejkowane wiadomości do aplikacji która się wykonuje tylko wówczas, gdy wiadomość jest na czele kolejki i została potwierdzona przez każdy inny proces.

22 Systemy rozproszone / Synchro 22 Znaczniki wektorowe (1) Uwaga: znaczniki czasu Lamporta nie gwarantują, że jeśli C (a)

23 Systemy rozproszone / Synchro 23 Znaczniki wektorowe (2) gdy proces P j odbiera m od P i z vt(m): uaktualnia V j [k] do max{ V j [k], V(m)[k] }, powiększa V j [j] o 1. żeby zapewnić przyczynowo spójne dostarczenie komunikatów, zakładamy że assume nasza składowa powiększa się tylko podczas wysłania komunikatu. Wtedy, P j odkłada dostarczenie m póki: vt(m)[i] = V j [i] + 1. vt(m)[k] V j [k] for k i. Przykład: Bierzemy V 3 = [0, 2, 2], vt(m) = [1, 3, 0]. Jaką informację ma P 3, i co zrobi przy odbiorze m (od P 1 )?

24 Systemy rozproszone / Synchro 24 Stan globalny (1) Idea : Czasami chcemy zebrać aktualny stan obliczeń rozproszonych, zwany rozproszonym zdjęciem. Składa się z wszystkich stanów i lokalnych wiadomości przebywających w drodze. Rozproszone zdjęcia powinny odzwierciedlać spójny stan systemu.

25 Systemy rozproszone / Synchro 25 Stan globalny (2) założenie: zbiór procesów związanych ze sobą poprzez jednokierunkowe kanały komunikacji punkt-punkt, każdy proces P może zainicjować rozproszone zdjęcie, P rozpoczyna nagrywanie własnego stanu lokalnego, P następnie wysyła znacznik wzdłuż każdego z wychodzących kanałów, gdy Q otrzyma znacznik przez kanał C, jego działanie zależy od tego, czy już odnotował swój stan lokalny : jeszcze nie zarejestrowane: zapisuje stan lokalny i wysyła znacznik każdym z wychodzących kanałów, już zarejestrowane: znacznik na C oznacza, że stan kanału należy zapisać: wszystkie wiadomości otrzymane od czasu gdy Q rejestrował własny stan, a przed tym, jak znacznik będzie rejestrowany jako stan kanału, Q jest skończony, kiedy otrzyma wskaźnik na każdym z kanałów wejściowych.

26 Systemy rozproszone / Synchro 26 Stan globalny (3) Organizacja procesu i kanałów dla rozproszonego zdjęcia

27 Systemy rozproszone / Synchro 27 Stan globalny (4) b) Proces Q odbiera znacznik po raz pierwszy i rejestruje swój stan lokalny c) Q rejestruje wszystkie wchodzące wiadomości d) Q odbiera znacznik dla kanału wchodzącego i kończy rejestrację stanu wchodzącego kanału

28 Systemy rozproszone / Synchro 28 Algorytmy elekcji Zasada: Algorytm wymaga, żeby jakiś proces działał jako koordynator. Powstaje pytanie, jak wybrać ten specjalny proces dynamicznie. w wielu systemach koordynator wybrany ręcznie (np. serwery plików). Prowadzi to do scentralizowanego rozwiązania => pojedynczego punktu awarii. jeśli koordynator wybierany jest dynamicznie, w jakim zakresie możemy mówić o rozwiązaniu scentralizowanym lub rozproszonym? Posiadanie centralnego koordynatora nie koniecznie powoduje, że algorytm jest nierozproszony jest w pełni rozproszone rozwiązanie, tzn. taki co bez koordynatora, czy zawsze bardziej niezawodny niż rozwiązanie scentralizowane lub skoordynowane? W pełni rozproszone rozwiązania niekoniecznie są lepsze (myślimy o odporności na uszkodzenia) Przykłady algorytmów : Algorytm tyrana, Algorytm pierścieniowy. :

29 Systemy rozproszone / Synchro 29 Algorytm tyrana (1) Zasada: Każdy proces ma skojarzony priorytet (wagę). Proces z najwyższym priorytetem powinien być zawsze wybierany na koordynatora. Pytanie: Jak znaleźć najcięższy proces? każdy proces może rozpocząć wybory, wysyłając wiadomość o wyborach do wszystkich innych procesów (zakładając, że nie znamy wag itp.). jeśli proces P heavy dostaje komunikat o wyborach od lżejszego procesu P light, wysyła komunikat take-over to P light. P light odpada z wyścigu. jeśli proces P heavy nie dostaje komunikatu o wyborach z powrotem, to wygrywa, i wysyła komunikat o zwycięstwie do pozostałych procesów

30 Systemy rozproszone / Synchro 30 Algorytm tyrana (2) Algorytm wyborów tyrana a. Proces 4 rozpoczyna elekcję b. Procesy 5 i 6 odpowiadają mu stop c. Teraz 5 and 6 kontynuują elekcję

31 Systemy rozproszone / Synchro 31 Algorytm tyrana (3) d. Proces 6 każe jej zaprzestać procesowi 5 e. Proces 6 powiadamia wszystkie procesy o swoim zwycięstwie

32 Systemy rozproszone / Synchro 32 Algorytm pierścieniowy (1) Zasada: priorytet procesu uzyskuje się poprzez organizowanie procesów w (logiczny) pierścień. Proces o najwyższym priorytecie powinien zostać wybrany na koordynatora. każdy proces może rozpocząć wybory, wysyłając wiadomość o wyborach do swojego następcy. Jeżeli następca jest nieczynny, wiadomość zostanie przekazana do kolejnego następcy. jeśli wiadomość jest przekazana, nadawca dodaje siebie do listy. Gdyż lista wraca do inicjatora, każdy ma szansę, zaznaczyć swoją obecność. inicjator wysyła koordynatorowi przez pierścień komunikat zawierający listę wszystkich procesów żywych. Ten z najwyższym priorytetem jest wybrany na koordynatora.

33 Systemy rozproszone / Synchro 33 Algorytm pierścieniowy (2) Algorytm wyborów z użyciem pierścienia

34 Systemy rozproszone / Synchro 34 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.

35 Systemy rozproszone / Synchro 35 Wzajemne wykluczanie : algorytm scentralizowany a. Proces 1 prosi koordynatora o pozwolenie na wejście do obszaru krytycznego. Udziela się zgody b. Proces 2 pyta o pozwolenie na wejście do tego samego obszaru krytycznego. Koordynator nie odpowiada. c. Kiedy proces 1 opuszcza obszar krytyczny, to informuje o tym koordynatora, a tamten odpowiada 2

36 Systemy rozproszone / Synchro 36 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.

37 Systemy rozproszone / Synchro 37 Wzajemne wykluczanie : Algorytm rozproszony (2) a. Dwa procesy chcą wejść do tego samego obszaru krytycznego w tym samym momencie. b. Proces 0 ma najniższy znacznik czasowy, więc wygrywa. c. Kiedy proces 0 zrobił swoje, to wysyła również OK, więc 2 może teraz wejść do obszaru krytycznego.

38 Systemy rozproszone / Synchro 38 Wzajemne wykluczanie : Algorytm Token Ring a. Nieuporządkowana grupa procesów w sieci. b. Pierścień logiczny zorganizowany programowo. 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).

39 Systemy rozproszone / Synchro 39 Wzajemne wykluczanie : porównanie Porównanie trzech algorytmów wzajemnego wykluczania Algorithm # Komunikatów na wejście/wyjście Opóźnienie przed wejściem (mierzone liczbą komunikatów) Problemy Scentralizowany 32 Awaria koordynatora Rozproszony 2 ( n – 1 ) Awaria dowolnego procesu Token ring 1 to 0 to n – 1 Utrata żetonu, awaria procesu

40 Systemy rozproszone / Synchro 40 Rozproszone transakcje 1. Model transakcji Właściwości ACID 2. Klasyfikacja transakcji płaskie transakcje, zagnieżdżone transakcje, rozproszone transakcje. 3. 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.

41 Systemy rozproszone / Synchro 41 Model transakcji (1) Aktualizowanie taśmy głównej toleruje awarie

42 Systemy rozproszone / Synchro 42 Model transakcji (2) Przykłady operacji dla transakcji OperacjaOpis BEGIN_TRANSACTIONZaznaczenie początku transakcji END_TRANSACTIONZakończenie transakcji i próba jej zatwierdzenia ABORT_TRANSACTION Likwidacja transakcji, odtworzenie starych wartości READCzytanie danych z pliku, tabeli, lub inaczej WRITEZapisywanie danych do pliku, tabeli, lub inaczej

43 Systemy rozproszone / Synchro 43 Model transakcji (3) a. Transakcja potwierdzonych rezerwacji trzech lotów b. Transakcja zaniechana wskutek niemożności zarezerwowania trzeciego lotu 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)

44 Systemy rozproszone / Synchro 44 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.

45 Systemy rozproszone / Synchro 45 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ł.

46 Systemy rozproszone / Synchro 46 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.

47 Systemy rozproszone / Synchro 47 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.

48 Systemy rozproszone / Synchro 48 Implementacja transakcji 1. 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. 2. Rejestrowanie z wyprzedzeniem (writeahead log) mechanizm w którym zapisywane zmiany umożliwiają wycofanie (roll back) gdy coś dzieje się nie tak.

49 Systemy rozproszone / Synchro 49 Implementacja transakcji: Prywatna przestrzeń robocza a) Indeks i bloki dyskowe trzy-blokowego pliku b) Sytuacja po zmodyfikowaniu przez transakcję bloku 0 i dodaniu bloku 3 c) Stan po zatwierdzeniu

50 Systemy rozproszone / Synchro 50 Implementacja transakcji : rejestracja z wyprzedzeniem a) Transakcja b) – d) Rejestr przed wykonaniem każdej instrukcji x = 0; y = 0; BEGIN_TRANSACTION; x = x + 1; y = y + 2 x = y * y; END_TRANSACTION; (a) Rejestr [x = 0 / 1] (b) Rejestr [x = 0 / 1] [y = 0/2] (c) Rejestr [x = 0 / 1] [y = 0/2] [x = 1/4] (d)

51 Systemy rozproszone / Synchro 51 Sterowanie współbieżnością (1) Organizacja zarządców obsługi transakcji

52 Systemy rozproszone / Synchro 52 Sterowanie współbieżnością (2) Organizacja zarządców obsługi rozproszonych transakcji.

53 Systemy rozproszone / Synchro 53 Serializowalność (1) a) – c) Trzy transakcje T 1, T 2, i T 3 d) Możliwe plany 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 1x = 0; x = x + 1; x = 0; x = x + 2; x = 0; x = x + 3Dopuszczalny Plan 2x = 0; x = 0; x = x + 1; x = x + 2; x = 0; x = x + 3;Dopuszczalny Plan 3x = 0; x = 0; x = x + 1; x = 0; x = x + 2; x = x + 3;Niedozwolony (d)

54 Systemy rozproszone / Synchro 54 Serializowalność (2) Rozważmy zbiór E transakcji T 1,..., T n. 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 T 1,..., T n. Ponieważ nie wchodzimy w szczegóły obliczeń w ramach transakcji, transakcję można zamodelować jako zarejestrowane operacje read i write. Dwie operacje OPER( T i, x) i OPER( T j, 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.

55 Systemy rozproszone / Synchro 55 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.

56 Systemy rozproszone / Synchro 56 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. 1. gdy klient żąda wykonania OPER(T i,x), planista sprawdza czy nie zachodzi konflikt z operacją OPER(T j,x) od jakiegoś innego klienta. Jeśli konflikt nie grozi, to jest udzielany LOCK(T i,x), w przeciwnym wypadku odkładamy wykonywanie OPER(T i,x). konfliktujące operacje są wykonywane w tej samej kolejności w jakiej są udzielane zamki. 2. jeśki LOCK(T i,x) został udzielony, nie oddajemy zamka póki OPER(T i,x) nie zostanie wykonana przez zarządcę danych. 3. jeśli RELEASE(T i,x) miało miejsce, T i nie dostanie więcej zamków.

57 Systemy rozproszone / Synchro 57 Dwufazowe blokowanie (2) Dwufazowe blokowanie

58 Systemy rozproszone / Synchro 58 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 timeoutu, kaskadowe zaniechania - ścisłe dwufazowe blokowanie.

59 Systemy rozproszone / Synchro 59 Dwufazowe blokowanie (4) Ścisłe dwufazowe blokowanie

60 Systemy rozproszone / Synchro 60 Pesymistyczne porządkowanie wg znaczników czasu (1) każda transakcja T posiada znacznik czasowy ts(T), znaczniki czasowe są unikatowe (algorytm Lamporta), każda operacja, stanowi część T, ze znacznikiem czasowym ts(T), każda dana x ma znacznik czasowy ts RD (x) operacji read oraz znacznik czasowy ts WR (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ą.

61 Systemy rozproszone / Synchro 61 Pesymistyczne porządkowanie wg znaczników czasu (2) Concurrency control using timestamps

62 Systemy rozproszone / Synchro 62 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.


Pobierz ppt "Distributed systems / Naming 1 Systemy rozproszone Synchronizacja 1. Synchronizacja zegarów 2. Zegary logiczne 3. Stan globalny 4. Algorytmy elekcji 5."

Podobne prezentacje


Reklamy Google