Sr-11-wyk-1.0-Slajd34

From Studia Informatyczne

Koordynowane punkty kontrolne

Koordynowane punkty kontrolne


Koordynowane rejestrowanie punktów kontrolnych (ang. coordinated checkpointing ) polega na zsynchronizowaniu grupy procesów w celu zapamiętania swojego stanu w pamięci trwałej. Poniesienie kosztu synchronizacji jest opłacalne, ponieważ automatycznie tak wygenerowany zbiór punktów kontrolnych tworzy linię odtwarzania. Nie ma więc potrzeby przechowywania wielu punktów kontrolnych w węzłach, ponieważ zbiór ostatnich punktów kontrolnych automatycznie tworzy odcięcie spójne. Do skoordynowania procesów można wykorzystać algorytm rejestrowania stanu globalnego systemu. Innym, prostszym rozwiązaniem jest zastosowanie protokołu blokowania dwufazowego (2PC). W pierwszej fazie wykonywane jest zarejestrowanie punktów kontrolnych w poszczególnych węzłach po odebraniu zlecenia od koordynatora. Jednocześnie następuje wstrzymanie wysyłania nowych komunikatów. W drugiej fazie, po zebraniu potwierdzeń od wszystkich węzłów, koordynator wysyła zezwolenie na kontynuację przetwarzania. Algorytm pozwala na zarejestrowanie globalnie spójnego stanu, ponieważ po zarejestrowaniu stanu na węźle, węzeł ten przestaje nadawać nowe komunikaty do czasu zarejestrowania stanu w pozostałych węzłach. Eliminowane są więc automatycznie wiadomości, które potencjalnie mogłyby naruszyć spójność obrazu.

Podejście to można zoptymalizować poprzez rozsyłanie zlecenia na wykonanie punktu kontrolnego tylko do węzłów, które są zależne od koordynatora. Węzeł jest zależny od koordynatora, gdy odebrał wiadomość przyczynowo zależną od dowolnej wiadomości wysłanej przez koordynatora od czasu wykonania ostatniego punktu kontrolnego. Wykonanie migawki przyrostowej (ang. incremental snaphot ) realizowane jest poprzez wysłanie przez koordynatora zlecenia wykonania punktu kontrolnego do wszystkich procesów, do których wysyłał wiadomość od ostatniego punktu kontrolnego. Każdy proces, który dostaje takie zlecenie propaguje je jednokrotnie do wszystkich procesów, do których sam wysyłał wiadomość. Po zidentyfikowaniu grupy procesów zależnych od koordynatora wykonywane jest zarejestrowanie punktów kontrolnych w tych procesach podobnie jak to miało miejsce w przypadku standardowego 2PC.


<< Poprzedni slajd | Spis treści | Następny slajd >>