sql >> Database >  >> RDS >> Oracle

2PL, rigoureus versus strikt model, is er enig voordeel?

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



  1. Hoe een applicatie met sql-serverdatabase op clients te implementeren

  2. Postgres recursieve query met row_to_json

  3. Wat is het verschil tussen Scope_Identity(), Identity(), @@Identity en Ident_Current()?

  4. Een procedure uitvoeren met de DBMS_SCHEDULER.CREATE_JOB-procedure