Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

2PL, Modelo Rigoroso vs Rigoroso, Existe algum benefício?


O que é o protocolo de bloqueio de duas 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

Agora, o que é bloqueio de fase estrito?

Aqui, uma transação deve manter todos os seus bloqueios exclusivos até que seja confirmada/abortada.

Mas, o que é 2PL rigoroso?

O bloqueio de duas fases rigoroso é ainda mais rigoroso:aqui todos os bloqueios são mantidos até o commit/abort. Neste protocolo, as transações podem ser serializadas na ordem em que são confirmadas.

Muito mais profundo:

2PL estrito:



O mesmo que 2PL, mas mantém todos os bloqueios exclusivos até que a transação já tenha sido confirmada ou abortada com sucesso. – Garante a capacidade de recuperação sem cascata

2PL rigoroso:



O mesmo que Strict 2PL, mas mantém todos os bloqueios até que a transação já tenha sido confirmada ou abortada com sucesso. –É usado em ambientes dinâmicos onde os padrões de acesso a dados não são conhecidos de antemão.

Não há impasse. Além disso, uma transação mais jovem solicitando um item retido por uma transação mais antiga é abortada e reiniciada com o mesmo carimbo de data/hora, evitando a inanição.

Espero que as explicações acima claras com diagrama devem ter deixado você claro sobre o conceito e as vantagens do rigoroso sobre o outro.

Obrigado