Le verrouillage

Introduction

Une solution générale à la gestion de la concurrence est une technique très simple appelée verrouillage.

DéfinitionVerrou

Poser un verrou sur un objet (typiquement un tuple) par une transaction signifie rendre cet objet inaccessible aux autres transactions.

Synonymes : Lock

DéfinitionVerrou 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éfinitionVerrou 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

RemarqueVerrous 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éthodeRègles de verrouillage

Soit la transaction A voulant poser un verrou S sur un objet O

  1. Si O n'est pas verrouillé alors A peut poser un verrou S

  2. Si O dispose déjà d'un ou plusieurs verrous S alors A peut poser un verrou S

  3. 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

  1. Si O n'est pas verrouillé alors A peut poser un verrou X

  2. 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

Matrice des règles de verrouillage

RemarquePromotion 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.