Jaka jest różnica między blokadą U (update) a X (exclusive), jeżeli aktualizacja
wymaga blokady wyłącznej X (exclusive)?
Czy blokada U (update) jest tym samym co IX (Intent Exclusive)?
Jaka jest różnica między blokadą U (update) a X (exclusive), jeżeli aktualizacja
wymaga blokady wyłącznej X (exclusive)?
Czy blokada U (update) jest tym samym co IX (Intent Exclusive)?
Blokady X (exclusive) zakładane są dla operacji wymagającej wyłącznego dostępu do zasobu np. Insert, Update i Delete. Blokady U (Update) zakładane są w celu uniknięcia zakleszczenia wynikającego z dwuetapowego wykonania operacji UPDATE. Ponieważ operacja UPDATE wymaga odczytania a następnie modyfikacji zasobu w pierwszym etapie, zakładana jest blokada U (Update) a następnie jeżeli dochodzi do modyfikacji konwertowana jest na blokadę X (Exclusive) lub S (Shared) w przeciwnym wypadku. Istotną kwestią jest fakt, że blokadę U (Update) może uzyskać na danym zasobie nie więcej niż jedna transakcja równocześnie.
Blokady typu I (Intent) stosowane są w celu ustalenia hierarchii blokowania i oznaczają intencję zablokowania zasobu leżącego niżej w hierarchii.
Podsumowując. Podczas operacji UPDATE blokada typu IX (Intent Exclusive) jest zakładana w celu wskazania intencji zablokowania wyłącznego zasobu leżącego poniżej założonej blokady, blokada U (Update) zastępuje blokadę S (Shared) w celu uniknięcia zakleszczenia i konwertowana jest na blokadę X (Exclusive) podczas aktualizacji danych.