Sr-11-wyk-1.0-Slajd24

From Studia Informatyczne

Stany w protokole 2PC

Stany w protokole 2PC


Podstawową wadą protokołu 2PC jest jego wrażliwość na awarie, zarówno koordynatora jak i poszczególnych uczestników. W przetwarzaniu zarówno po stronie koordynatora jak i uczestników występują stany oczekiwania na komunikat (CZEKANIE u koordynatora, ROZPOCZĘCIE i GOTOWOŚĆ u uczestnika). Awaria któregoś z procesów może powodować w tym przypadku zablokowanie pozostałych, a więc prowadzi do niepowodzenia protokołu jako całości. W celu rozwiązania tego problemu można zastosować odliczanie czasu celem wykrycia awarii.

Uczestnik głosowania czeka na początku w stanie ROZPOCZĘCIE na komunikat GŁOSOWANIE. Jeżeli komunikat nie nadchodzi, uznaje, że transakcję należy wycofać. Jeżeli komunikat jednak nadejdzie, odeśle odpowiedź PRZECIW.

Koordynator jest blokowany w stanie CZEKANIE. Jeżeli w określonym czasie nie otrzyma odpowiedzi od wszystkich uczestników, podejmuje decyzję o wycofaniu transakcji (wyśle komunikat ZANIECHAJ ).

Uczestnik może być także blokowany w stanie GOTOWOŚĆ. Jeżeli nie nadejdzie komunikat od koordynatora, to uczestnik może podjąć decyzję o wycofaniu transakcji. Lepszym rozwiązaniem jest jednak próba skomunikowania się z innymi uczestnikami w celu uzyskania informacji o decyzji koordynatora. Jeżeli uczestnik P dowie się od innego uczestnika Q , że on przeszedł do stanu ZATWIERDZENIE, to P również może zatwierdzić transakcję, ponieważ jedynym sposobem na przejście do stanu ZATWIERDZENIE jest uzyskanie od koordynatora komunikatu ZATWIERDŹ wskazującego na taką decyzję koordynatora (komunikat ZATWIERDŹ nie dotarł po prostu do P ). Podobnie jeżeli Q jest w stanie ZANIECHANIE , to P również może bez obaw wycofać swoją lokalną transakcję.

Sytuacja jest trudniejsza, gdy proces Q jest w stanie ROZPOCZĘCIE. Oznacza to, że Q nie dostał od koordynatora komunikatu GŁOSOWANIE . W takiej sytuacji bezpieczniej jest przejść w obu procesach do stanu ZANIECHANIE.

Najtrudniejsza sytuacja jest wtedy, gdy Q jest w stanie GOTOWOŚĆ, również czekając na decyzję od koordynatora. Mogło się zdarzyć, że koordynator uległ awarii po zainicjowaniu głosowania i wszystkie procesy są w stanie oczekiwania. Nawet jeżeli wszystkie są gotowe do zatwierdzenia, to i tak nie uda się podjąć żadnej decyzji – trzeba czekać na wznowienie pracy koordynatora.


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