Czas w systemach rozproszonych

Transkrypt

Czas w systemach rozproszonych
Czas w systemach rozproszonych
Krzysztof Banaś
Systemy rozproszone
1
Czas w systemach rozproszonych
➔
Istnienie algorytmów opartych na czasie zdarzeń

➔
Brak czasu globalnego





np. make, systemy czasu rzeczywistego
Zegar fizyczny – lokalny czas każdego komputera
Oznaczanie zdarzeń w lokalnym komputerze czasem lokalnym
Dokładność (rozdzielczość) zegara wewnętrznego
Różnice pomiędzy zegarami różnych komputerów

Odchylenie wskazań zegarów kwarcowych (w stosunku do czasu wzorcowego) rzędu 10­6 (ok. 1s na tydzień)
Czas uniwersalny UTC



Dokładność zegarów atomowych 10­13
Koordynacja światowych zegarów atomowych Rozgłaszanie czasu UTC – stacje naziemne i satelitarne (np. GPS)
Krzysztof Banaś
Systemy rozproszone
2
Czas w systemach rozproszonych
➔
Serwery czasu UTC

➔
Synchronizacja z serwerami czasu ­ algorytmy scentralizowane


➔
z serwerami pasywnymi – np. algorytm Cristiana
z serwerami aktywnymi – np. algorytm Berkeley
Synchronizacja bez serwerów ­ algorytmy zdecentralizowane

➔
Dokładność na podstawie odczytu sygnału z nadajnika UTC (z uwzględnieniem poprawek na rozchodzenie się sygnału) – ok. 1 ms
np. algorytmy uśredniania lokalnego
The Network Time Protocol – standard synchronizacji zegarów w Internecie
Krzysztof Banaś
Systemy rozproszone
3
Algorytm Cristiana






Istnieje serwer czasu odbierający sygnały od urządzeń UTC
Klient wysyła zapytanie o czas, odbiera odpowiedź (czas t) i mierzy czas jaki zajęły te operacje, (tc)
W momencie odebrania ustawia swój zegar na t+tc/2
Dokładność pomiaru w najprostszym oszacowaniu wynosi tc/2 – jeżeli wartość tc jest zbyt duża pomiar powinien być odrzucony
Zalecaną metodologią jest wykonanie serii zapytań i wybór przypadku o najmniejszym tc
Wadą algorytmu jest zależność od pojedynczego serwera
Krzysztof Banaś
Systemy rozproszone
4
Algorytm Berkeley






Istnieje komputer nadrzędny zarządzający procesem synchronizacji zegarów
Komputer nadrzędny pyta pozostałe komputery o ich czas lokalny
Na podstawie odpowiedzi oblicza czas uśredniony – wartości znacznie odbiegające od innych są odrzucane, pozostałe służą do obliczeń
Komputer nadrzędny przesyła innym komputerom ich odchylenie od czasu uśrednionego
Dokładność zależy od czasu komunikacji
W przypadku awarii komputera nadrzędnego konieczny jest wybór (elekcja) jego następcy
Krzysztof Banaś
Systemy rozproszone
5
Network Time Protocol ­ NTP

Cele wprowadzenia NTP:




synchronizacja zegarów lokalnych z czasem UTC poprzez Internet 
konieczność uwzględnienia zawodnej natury Internetu

uzyskiwanie dokładności rzędu dziesiątek milisekund
niezawodność realizacji usługi

nadmiarowe serwery i nadmiarowe połączenia z serwerami
umożliwienie częstej resynchronizacji czasu

skalowalność systemu
zabezpieczenie przeciw zaburzeniom, umyślnym i przypadkowym

autentykacja serwerów i komunikatów pochodzących od serwerów
Krzysztof Banaś
Systemy rozproszone
6
Network Time Protocol ­ NTP

Sposób funkcjonowania NTP



serwery pierwszorzędne ­ odbiór sygnałów UTC
serwery drugorzędne ­ hierarchia systemów synchronizowanych z serwerami pierwszorzędnymi

serwery z niższych poziomów synchronizacji mają mniej dokładny czas
tryby synchronizacji między serwerami:

multicast ­ rozgłaszanie sygnału czasowego

niska dokładność, odpowiedni dla systemów połączonych szybką siecią LAN

procedure­call ­ serwery przyjmują żądania klientów i udzielają odpowiedzi (obliczenia podobne jak w algorytmie Cristiana)

wyższa dokładność

symmetric ­ wymiana sekwencji informacji między serwerami

najwyższa dokładność, dla serwerów wyższych poziomów
Krzysztof Banaś
Systemy rozproszone
7
Stan globalny

Z problemem globalnego czasu jest związany także problem globalnego stanu:



interesuje nas stan systemu rozproszonego w konkretnej pojedynczej chwili czasu
przykład kiedy jest to istotne, np. naliczanie procentów w banku:

dwie filie, przelew z konta w filii A na konto w filii B

brak czasu globalnego, jeśli zegary w A i B różnią się, może dojść do sytuacji, że procent nie zostanie naliczony ani w A, ani w B lub zostanie naliczony i w A, i w B
inny przykład: rozproszone odśmiecanie Krzysztof Banaś
Systemy rozproszone
8
Spójny stan globalny

Przykład przelewu bankowego:



rozważając szczegółowo stan systemu widać, że konieczne jest uwzględnienie stanu kanałów komunikacyjnych

bez wprowadzenia czasu globalnego operacja taka jest trudna do realizacji
jeśli pomijamy stan kanałów komunikacyjnych okazuje się, że stan procesów może być niezgodny ze stanem pożądanym
W celu zdefiniowania poprawności stanu globalnego wprowadza się pojecie spójności
Krzysztof Banaś
Systemy rozproszone
9
Stan globalny

Spójność stanu globalnego:







stan globalny określamy jako kolekcję stanów lokalnych
stan lokalny zapisujemy w pewnym konkretnym momencie
stan lokalny zawiera informację lokalną oraz informację o wszystkich wysłanych i odebranych komunikatach przed zapisem stanu lokalnego
dwa stany lokalne dwóch procesów w ramach stanu globalnego są w relacji przejściowej, jeśli istnieje komunikat wysłany z jednego procesu do drugiego i jeszcze nie odebrany przez ten drugi
dwa stany lokalne dwóch procesów w ramach stanu globalnego są w relacji niespójności jeśli istnieje komunikat od jednego do drugiego, odebrany w drugim, ale jeszcze nie wysłany w pierwszym
stan globalny jest spójny wtedy i tylko wtedy kiedy żadne dwa stany lokalne nie są w relacji niespójności
stan globalny jest silnie spójny wtedy i tylko wtedy kiedy żadne dwa stany lokalne nie są ani w relacji niespójności, ani w relacji przejściowej
Krzysztof Banaś
Systemy rozproszone
10
Stan globalny

Jak dobierać stany lokalne, żeby uzyskać spójny stan globalny?



zdarzenia zapisu stanu lokalnego (przecięcia, cuts) powinny być współbieżne
inaczej: żadne dwa przecięcia nie mogą być powiązane relacją przyczynową (happened before)
Algorytm Chandy­Lamporta pozwala zapisać sekwencję stanów lokalnych tworzących spójny stan globalny systemu rozproszonego



uzyskany obraz systemu nazywany jest „migawką” (ujęciem, snapshot)
algorytm zakłada, że procesy są połączone kanałami komunikacyjnymi tworzącymi silnie spójny graf skierowany
przesyłanie komunikatów kanałem odbywa się zgodnie z porządkiem FIFO
Krzysztof Banaś
Systemy rozproszone
11
Algorytm Chandy­Lamporta

Proces rozpoczynający algorytm 

zapisuje swój stan lokalny i wysyła żeton do wszystkich procesów połączonych z jego wyjściami
Proces Pj, który odbiera żeton od procesu Pi:

jeśli jeszcze nie zapisał swojego stanu lokalnego

zapisuje stan kanału Pi­Pj jako pusty
zapisuje stan lokalny

wysyła żeton do wszystkich procesów połączonych z jego wyjściami
jeśli już zapisał swój stan



zapisuje stan kanału Pi­Pj (wszystkie komunikaty odebrane przez Pj od Pi po zapisie stanu lokalnego przez Pj, a przed odebraniem żetonu od Pi )
Krzysztof Banaś
Systemy rozproszone
12

Podobne dokumenty