Sr-11-wyk-1.0-Slajd27

From Studia Informatyczne

Obsługa pytania o decyzję

Obsługa pytania o decyzję


Każdy z procesów musi być gotowy na udzielenie odpowiedzi innym uczestnikom o decyzji w sprawie zatwierdzenia transakcji. Działanie takie może być realizowane przez oddzielny wątek, którego zadaniem jest tylko udzielanie odpowiedzi na komunikat PYTANIE_O_DECYZJĘ . Odpowiedź jest udzielana tylko wtedy, gdy jest znana, a więc gdy ostatni stan zapisany w rejestrze jest stanem końcowym ZATWIERDZENIE lub ZANIECHANIE . Odpowiedź negatywna jest udzielana również wtedy, gdy proces w momencie odbioru pytania o stan nadal pozostaje w stanie ROZPOCZĘCIE , co oznacza, że nie dostał jeszcze komunikatu GŁOSOWANIE od koordynatora, a to może oznaczać awarię koordynatora. Jeżeli odpytywany proces pozostaje nadal w stanie GOTOWOŚĆI , to ignoruje zapytanie i nie odpowiada, ponieważ sam nie zna jeszcze decyzji o losach transakcji. W skrajnym przypadku może się zdarzyć, że wszyscy uczestnicy nie dostaną komunikatu z decyzją od koordynatora, ponieważ ten ulegnie awarii. Wszyscy będą więc w stanie GOTOWOŚCI , a więc nie będą odpowiadać na pytania o decyzję. W efekcie nastąpi zablokowanie wszystkich uczestników do czasu rekonstrukcji procesu koordynatora, który po wznowieniu pracy podejmie decyzję. Z powodu tego blokowania protokół 2PC bywa również nazywany blokującym protokołem zatwierdzania (ang. blocking commit protocol ).


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