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

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Przykład

Przykład


Dla ilustracji działania hierarchicznego algorytmu 2PL rozważmy prosty przykład przedstawiony na slajdzie. Dane są trzy transakcje T1, T2 i T3. Transakcja T1 zapisuje pierwszą krotkę relacji A, odczytuje pierwszą krotkę relacji B, i aktualizuje drugą i ostatnią krotkę relacji B. Transakcja T2 jest zapytaniem, które odczytuje pierwszą i ostatnią krotkę relacji B, oraz wszystkie krotki relacji C. Transakcja T3 odczytuje wszystkie relacje A, B i C. Zgodnie z algorytmem hierarchicznego blokowania, transakcja T1 zakłada blokadę intencyjną zapisu IW na bazie danych, oraz intencyjne blokady do zapisu IW na relacjach A i B. Następnie, zakłada fizyczna blokadę W na zapisywanej krotce relacji A, blokadę R na pierwszej krotce relacji B oraz blokadę W na drugiej i ostatniej krotce relacji B. Transakcja T2 zakłada blokadę intencyjną do odczytu IR na bazie danych. Blokady IW i IR są kompatybilne. Następnie, transakcja T2 zakłada blokadę R na pierwszej krotce relacji B oraz próbuje założyć blokadę R na ostatniej krotce relacji B. Ponieważ krotka ta jest zablokowana do zapisu przez T1, operacja transakcji T2 założenia blokady do odczytu tej krotki zostaje umieszczona w kolejce transakcji oczekujących na uwolnienie blokady tej krotki. Ponieważ transakcja T2 odczytuje wszystkie krotki relacji C, zakłada blokadę fizyczną R całej relacji C.

Transakcja T3 zamierza odczytać wszystkie relacje A, B i C, stąd zakłada blokadę fizyczną R na całej bazie danych. Blokada fizyczna R jest niekompatybilna z blokadą intencyjną do zapisu IW, stąd żądanie transakcji T3 założenia blokady R nie może być spełnione.


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