Oracle
 sql >> Base de données >  >> RDS >> Oracle

2PL, modèle rigoureux vs strict, y a-t-il un avantage ?

Qu'est-ce que le protocole de verrouillage biphasé (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

Maintenant, qu'est-ce que le verrouillage de phase strict ?

Ici, une transaction doit détenir tous ses verrous exclusifs jusqu'à ce qu'elle soit validée/abandonnée.

Mais, qu'est-ce qu'un 2PL rigoureux ?

Le verrouillage rigoureux en deux phases est encore plus strict :ici, tous les verrous sont maintenus jusqu'à la validation/abandon. Dans ce protocole, les transactions peuvent être sérialisées dans l'ordre dans lequel elles sont validées.

Beaucoup plus profond :

2PL strict :

Identique à 2PL mais maintenez tous les verrous exclusifs jusqu'à ce que la transaction ait déjà été validée ou abandonnée avec succès. –Il garantit une récupération sans cascade

2PL rigoureux :

Identique à Strict 2PL mais maintenez tous les verrous jusqu'à ce que la transaction ait déjà été validée ou abandonnée avec succès. –Il est utilisé dans des environnements dynamiques où les modèles d'accès aux données ne sont pas connus à l'avance.

Il n'y a pas de blocage. De plus, une transaction plus récente demandant un article détenu par une transaction plus ancienne est abandonnée et redémarre avec le même horodatage, la famine est évitée.

J'espère que les explications claires ci-dessus avec schéma vous ont éclairé sur le concept et les avantages de la rigueur par rapport à l'autre.

Merci