Oracle
 sql >> Database >  >> RDS >> Oracle

2PL, modello rigoroso vs rigoroso, c'è qualche vantaggio?

Che cos'è il protocollo Two-Phase Locking (2PL)?

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

Ora, cos'è il blocco di fase rigoroso?

Qui una transazione deve mantenere tutti i suoi blocchi esclusivi finché non viene eseguita/interrotta.

Ma cos'è il 2PL rigoroso?

Il rigoroso lock a due fasi è ancora più rigoroso:qui tutti i lock vengono mantenuti fino al commit/abort. In questo protocollo le transazioni possono essere serializzate nell'ordine in cui vengono eseguite.

Molto più profondo :

2PL rigoroso :

Uguale a 2PL ma Mantieni tutti i blocchi esclusivi fino a quando la transazione non è già stata confermata o interrotta con successo. –Garantisce una recuperabilità senza cascata

2PL rigoroso :

Uguale a Strict 2PL ma Mantieni tutti i blocchi fino a quando la transazione non è già stata confermata o interrotta con successo. –Viene utilizzato in ambienti dinamici in cui i modelli di accesso ai dati non sono noti in anticipo.

Non c'è stallo. Inoltre, una transazione più recente che richiede un articolo trattenuto da una transazione anlder viene interrotta e riavviata con lo stesso timestamp, evitando la fame.

Spero che sopra chiare spiegazioni con diagramma debbano averti chiarito il concetto e i vantaggi del rigoroso rispetto all'altro.

Grazie