Wat is het Two-Phase Locking (2PL)-protocol?
A transaction is two-phase locked if:
before reading x, it sets a read lock on x
before writing x, it sets a write lock on x
it holds each lock until after it executes the corresponding operation
after its first unlock operation, it requests no new locks
Wat is nu strikte fasevergrendeling?
Hier moet een transactie al zijn exclusieve vergrendelingen behouden totdat deze wordt vastgelegd/afgebroken.
Maar wat is rigoureuze 2PL?
Strenge vergrendeling in twee fasen is zelfs nog strenger:hier worden alle vergrendelingen vastgehouden tot vastzetten/afbreken. In dit protocol kunnen transacties worden geserialiseerd in de volgorde waarin ze worden vastgelegd.
Veel dieper :
Strikte 2PL:
Hetzelfde als 2PL, maar houd alle exclusieve vergrendelingen vast totdat de transactie al succesvol is uitgevoerd of afgebroken. –Het garandeert cascadeloze herstelbaarheid
Rigoureuze 2PL :
Hetzelfde als Strict 2PL, maar houd alle vergrendelingen vast totdat de transactie al succesvol is uitgevoerd of afgebroken. –Het wordt gebruikt in dynamische omgevingen waar patronen voor gegevenstoegang niet vooraf bekend zijn.
Er is geen impasse. Ook wordt een jongere transactie die een item aanvraagt dat in het bezit is van een oudere transactie afgebroken en opnieuw gestart met dezelfde tijdstempel, honger wordt vermeden.
Ik hoop dat bovenstaande duidelijke uitleg met diagram je duidelijk moet hebben gemaakt over het concept en de voordelen van rigoureus boven de andere.
Bedankt