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
Porządek zdarzeń
➔
➔
W pewnych przypadkach nie jest istotny rzeczywisty czas zdarzeń, a tylko uprzedniość zdarzeń – porządek przyczynowy
Wtedy można stosować:


➔
zegary logiczne – numeryczny wyraz uprzedniości zdarzeń
funkcjonowanie zegarów logicznych oparte jest o ustalenie relacji uprzedniości pomiędzy zdarzeniami na podstawie:
 lokalnych czasów realizacji
 porządku wynikającego z przesłania komunikatów
Porządek ustalony na podstawie relacji uprzedniości jest częściowy (są zdarzenia, co do których nie jesteśmy w stanie powiedzieć, które zdarzyło sie wcześniej)
Krzysztof Banaś
Systemy rozproszone
8
Zegary logiczne

Można ustalić porządek całkowity na podstawie relacji uprzedniości wprowadzając tzw. globalne logiczne znaczniki czasu (timestamps):




każdy proces numeruje lokalnie swoje zdarzenia (zwiększając licznik Ti o 1 dla każdego zdarzenia)
kiedy wysyła komunikat do innego procesu, dołącza do niego stan swojego lokalnego licznika
kiedy odbiera komunikat ze stanem licznika t numeruje zdarzenie odebrania wartością max(Ti ,t)+1
z dwóch zdarzeń to jest „wcześniejsze”, które ma mniejszą wartość licznika, lub, jeśli oba mają te same wartości licznika, to które zaszło w procesie o mniejszym identyfikatorze Krzysztof Banaś
Systemy rozproszone
9
Zegary logiczne




Porządek całkowity nie umożliwia wnioskowania o przyczynowości (z tego, że pewne zdarzenie A ma mniejszy znacznik czasowy niż zdarzenie B, nie wynika, że zachodzi relacja A zdarzyło się przed B)
istnieje możliwość wprowadzenia powyższego wynikania poprzez wprowadzenie tzw. zegarów wektorowych
zegar wektorowy oznacza, że każdy proces utrzymuje tablicę zawierającą liczniki dla wszystkich procesów
 proces numeruje kolejno swoje zdarzenia
 proces przechowuje numery dla wszystkich innych procesów i uaktualnia je po otrzymaniu komunikatów (będących nośnikami informacji o uprzedniości zdarzeń)
pojedyncze zdarzenie otrzymuje znacznik czasowy będący całą tablicą wartości ( u(a) )
Krzysztof Banaś
Systemy rozproszone
10
Zegary wektorowe

Dla dwóch wektorowych znaczników czasowych zachodzi:





u = v ⇔ ∀i, u[i] = v[i]
u ? v ⇔ ∀i, u[i] ? v[i]
u < v ⇔ ( u ≠ v i u ? v)
u || v ⇔ ~(u<v) i ~(v<u)
Dzięki tym własnościom zachodzi:


dwa zdarzenia a i b są powiązane relacją przyczynową ⇔ u(a) < v(b) lub v(b) < u(a)
a ­> b ⇔ u(a) < u(b) (wnioskowanie w obie strony)
Krzysztof Banaś
Systemy rozproszone
11
Zegary wektorowe
Krzysztof Banaś
Systemy rozproszone
12