Obiektowe modelowanie systemów informatycznych



Pobieranie 8,01 Mb.
Strona102/113
Data23.10.2017
Rozmiar8,01 Mb.
1   ...   98   99   100   101   102   103   104   105   ...   113

Algorytm blokowania dwufazowego


Najszerzej stosowanym w praktyce jest algorytm blokowania dwufazowego (two-phase locking) oznaczony przez 2PL. Istotą tego algorytmu są następne założenia:

  • Każda transakcja zawiera dwie fazy: fazę blokowania (ekspansji) oraz fazę odblokowania (zwijania).

  • W fasie blokowania transakcja musi uzyskać blokady wszystkich danych, do których będzie dokonywać dostępu. Moment założenia wszystkich żądanych blokad, równoznacznych z zakończeniem fazy blokowania, jest nazywany punktem akceptacji (commit point).

  • W fazie odblokowania (po operacji commit lub rollback), następuje zdejmowanie wszystkich nałożonych blokad. Ponadto w fazie tej nie można zakładać nowych blokad.

Diagram czasowy fazę blokowania (ekspansji) oraz fazę odblokowania (zwijania) jest pokazany na rys. 44.

W algorytmie 2PL odczyt danej możliwy natychmiast po nałożeniu blokady tej danej, a więc w fazie blokowania , natomiast zapis jest możliwy dopiero w po osiągnięciu przez transakcję punktu akceptacji, a więc w fazie odblokowania.



Operacja zapisu jest wykonywana następująco. Założenie blokady wyłącznej („dla zapisu” (Write) ) jest równoznaczne z wykonaniem zapisu wstępnego w obszarze roboczym związanym z zapisywaną daną. Zapis właściwy jest realizowany dopiero w fazie odblokowania, w momencie zdejmowania blokady tej danej na podstawie zawartości obszaru roboczego.

T
ablica 14 . Przykład protokołu dwufazowego .


Transakcja realizuje operacje przelewu kont. Transakcja realizuje operacje kapitalizacji kont. Dla początkowego stanu kont =100,

1   ...   98   99   100   101   102   103   104   105   ...   113


©operacji.org 2017
wyślij wiadomość

    Strona główna