sql >> Base de Datos >  >> RDS >> Oracle

2PL, modelo riguroso vs estricto, ¿hay algún beneficio?

¿Qué es el protocolo de bloqueo de dos fases (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

Ahora, ¿qué es el bloqueo de fase estricto?

Aquí, una transacción debe mantener todos sus bloqueos exclusivos hasta que se confirme/aborte.

Pero, ¿qué es 2PL riguroso?

El bloqueo riguroso de dos fases es aún más estricto:aquí todos los bloqueos se mantienen hasta la confirmación/abortación. En este protocolo, las transacciones se pueden serializar en el orden en que se confirman.

Mucho más profundo:

2PL estricto:

Igual que 2PL, pero mantenga todos los bloqueos exclusivos hasta que la transacción ya se haya confirmado o cancelado con éxito. –Garantiza recuperabilidad sin cascada

Rigurosa 2PL:

Igual que Strict 2PL, pero mantenga todos los bloqueos hasta que la transacción ya se haya confirmado o cancelado con éxito. –Se utiliza en entornos dinámicos donde los patrones de acceso a los datos no se conocen de antemano.

No hay punto muerto. Además, una transacción más joven que solicita un artículo en poder de una transacción anterior se aborta y se reinicia con la misma marca de tiempo, se evita la inanición.

Espero que las explicaciones claras anteriores con el diagrama hayan dejado claro el concepto y las ventajas de riguroso sobre el otro.

Gracias