BD-2st-1.2-w09.tresc-1.1-Slajd15
Zakleszczenie transakcji (1)
Rozważmy przykład współbieżnej realizacji transakcji T1 i T2, zgodnie z algorytmem 2PL, przedstawiony na slajdzie. Transakcja T1 zakłada blokadę do odczytu danej Y, a następnie żąda założenia blokady do zapisu danej X. Współbieżnie transakcja T2 zakłada blokadę do odczytu danej X, a następnie żąda założenia blokady do zapisu danej Y. Zauważmy, że realizacja obu transakcji ulega zawieszeniu. Transakcja T1 oczekuje na uwolnienie danej X przez transakcję T2, natomiast transakcja T2 oczekuje na uwolnienie danej Y blokowanej przez transakcję T1. Stan wzajemnego oczekiwania transakcji na uwolnienie zasobów nazywamy zakleszczeniem transakcji.
W systemach baz danych stosowane są dwa podejścia do problemu zakleszczenia transakcji:
- wykrywanie i rozwiązywanie zakleszczenia,
- zapobieganie wystąpieniu zakleszczenia.