BD-2st-1.2-w10.tresc-1.1-Slajd14

Z Studia Informatyczne
Wersja z dnia 12:21, 29 sie 2006 autorstwa PKrzyzagorski (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Algorytm znaczników czasowych

Algorytm znaczników czasowych


Algorytm znaczników czasowych, w swojej podstawowej wersji, jest wolny od zakleszczeń. Rozważmy realizację transakcji T1 i T2 przedstawioną na slajdzie.

S: T1: r(x) T2: r(y) T1: w(y) T2: w(x) T1: c T2: c

W przypadku algorytmu blokowania, przedstawiona realizacja prowadzi do wystąpienia zakleszczenia. W przypadku algorytmu znaczników czasowych, zakładając, że TS(T1) < TS(T2), transakcja T1 zostanie wycofana i restartowana ponownie (na skutek odrzucenia operacji zapisu T1: w(y)). Zasadniczą wadą algorytmu jest to, że, w swojej podstawowej wersji, algorytm nie zapewnia odtwarzalności realizacji!!! Rozważmy realizację transakcji T1 i T2 przedstawioną na slajdzie:

S: T1: w(x) T2: r(x) T2: w(x) T2: c T1: abort

Jak łatwo zauważyć, przedstawiona realizacja jest nie odtwarzalna, gdyż transakcja T2 odczytała stan danej x zapisany przez transakcję T1, która została wycofana.


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