4. Les composants de l'architecture d'un système de bases de données
125
Verrouillage et
déverrouillages des
valeurs
Les opérations LOCK et UNLOCK permettent d'acquérir et de
relâcher un verrou exclusif pour un objet. En principe, un objet doit
être verrouillé avant d'être accédé par une transaction. Dès qu'un objet
x acquiert un verrou LOCK(x), il est rendu indisponible aux autres
transactions en lecture et en écriture. C'est seulement quand un
UNLOCK(x) aura relâché le verrou courant de l'objet x que celui-ci
pourra être verrouillé de nouveau par une autre transaction.
Les verrous fonctionnent en principe selon un protocole bien
défini, et ne peuvent donc être acquis ou relâchés de manière
incontrôlée.
Règles pour la
pose de verrous
Protocole de verrouillage à deux phases
Le protocole de verrouillage à deux phases (two-phase locking
protocol, en anglais) empêche une transaction de demander un autre
LOCK (verrouiller) après un premier UNLOCK (déverrouiller).
Les phases
d’acquisition et de
relâchement des
verrous
Avec ce protocole de verrouillage, une transaction s'exécute
toujours en deux phases. Dans la phase d'acquisition, la transaction
demande tous les verrous nécessaires et les applique aux objets. Le
nombre de verrous acquis augmente au fur et à mesure des besoins.
Dans la phase de relâchement, les verrous sont libérés
progressivement. Le nombre de verrous utilisés diminue donc au fur
et à mesure. Par conséquent, pour une transaction donnée, la première
phase consiste à acquérir des verrous (LOCK) soit en une fois soit au
fur et à mesure sans en libérer aucun. C'est seulement dans la phase de
relâchement que les verrous sont libérés (UNLOCK) progressivement
ou en une fois à la fin de la transaction. Le protocole de verrouillage à
deux phases interdit donc de mixer la pose et la levée de verrous.
Gestion des
verrous dans une
transaction
comptable
La figure 4-8 illustre une application du protocole de
verrouillage à deux phases à la transaction comptable TRX_1. Dans la
phase d'acquisition, le compte a et sa contrepartie, le compte b, sont
successivement verrouillés. Les verrous sont ensuite libérés l'un après
l'autre dans la phase de relâchement. Dans cet exemple, les deux
verrous pourraient aussi être acquis tout au début de la transaction et
non pas par étapes successives. De la même façon, la levée de ces
Précédent

- 140/301

Suivant