Le verrouillage
Introduction
Une solution générale à la gestion de la concurrence est une technique très simple appelée verrouillage.
Définition : Verrou
Poser un verrou sur un objet (typiquement un tuple) par une transaction signifie rendre cet objet inaccessible aux autres transactions.
Synonymes : Lock
Définition : Verrou partagé S
Un verrou partagé, noté S, est posé par une transaction lors d'un accès en lecture sur cet objet.
Un verrou partagé interdit aux autres transaction de poser un verrou exclusif sur cet objet et donc d'y accéder en écriture.
Synonymes : Verrou de lecture, Shared lock, Read lock
Définition : Verrou exclusif X
Un verrou exclusif, noté X, est posé par une transaction lors d'un accès en écriture sur cet objet.
Un verrou exclusif interdit aux autres transactions de poser tout autre verrou (partagé ou exclusif) sur cet objet et donc d'y accéder (ni en lecture, ni en écriture).
Synonymes : Verrou d'écriture, Exclusive lock, Write lock
Remarque : Verrous S multiples
Un même objet peut être verrouillé de façon partagée par plusieurs transactions en même temps. Il sera impossible de poser un verrou exclusif sur cet objet tant qu'au moins une transaction disposera d'un verrou S sur cet objet.
Méthode : Règles de verrouillage
Soit la transaction A voulant poser un verrou S sur un objet O
Si O n'est pas verrouillé alors A peut poser un verrou S
Si O dispose déjà d'un ou plusieurs verrous S alors A peut poser un verrou S
Si O dispose déjà d'un verrou X alors A ne peut pas poser de verrou S
Soit la transaction A voulant poser un verrou X sur un objet O
Si O n'est pas verrouillé alors A peut poser un verrou X
Si O dispose déjà d'un ou plusieurs verrous S ou d'un verrou X alors A ne peut pas poser de verrou X
Remarque : Promotion d'un verrou
Une transaction qui dispose déjà, elle-même, d'un verrou S sur un objet peut obtenir un verrou X sur cet objet si aucune autre transaction ne détient de verrou S sur l'objet. Le verrou est alors promu du statut partagé au statut exclusif.