Verrouillage à deux phases

Définition, exemples et bonnes pratiques

À retenir

  • Garantit la cohérence des données lors d'accès simultanés.
  • Phase 1 : On accumule les verrous (on ne peut rien relâcher).
  • Phase 2 : On libère les verrous (on ne peut plus en demander de nouveaux).

Le verrouillage à deux phases est une règle de sécurité utilisée par les bases de données pour s'assurer que plusieurs opérations simultanées ne se marchent pas sur les pieds. Imaginez un chercheur qui doit rassembler plusieurs livres rares : il commence par collecter tous les ouvrages dont il a besoin (phase de montée), puis il les consulte, et enfin il les rend un par un (phase de descente) sans avoir le droit d'en reprendre de nouveaux une fois qu'il a commencé à les rendre.

Étymologie

Traduction directe de l'anglais Two-Phase Locking (souvent abrégé en 2PL). Le terme souligne la séparation stricte du cycle de vie d'une transaction en deux étapes chronologiques distinctes.

Exemples d'usage

  • Un virement bancaire : le système verrouille le compte émetteur et le compte récepteur avant d'effectuer le transfert, puis relâche les accès.
  • Une réservation de billet d'avion : le siège est bloqué le temps du paiement, puis le verrou est levé une fois la transaction validée ou annulée.

Cas d'usage

Ce concept est principalement utilisé dans les systèmes de gestion de bases de données (SGBD) pour garantir l'isolation des transactions. Il permet d'éviter que deux utilisateurs ne modifient la même donnée exactement au même moment, ce qui corromprait les informations.

Bonnes pratiques

Pour éviter de ralentir le système, les transactions doivent être les plus courtes possibles. Il faut également surveiller les deadlocks (interblocages), où deux transactions s'attendent mutuellement indéfiniment.

Synonymes

2PL verrouillage biphasé

Antonymes

verrouillage optimiste accès non contrôlé

Conseil

Si vous débutez en bases de données, retenez simplement que ce mécanisme est la 'police de la circulation' qui force les transactions à suivre un ordre logique pour éviter le chaos dans vos données.

Questions fréquentes

Qu'est-ce qu'un verrou en informatique ?

C'est un mécanisme qui interdit l'accès à une ressource (une ligne de tableau, un fichier) à d'autres programmes tant que l'opération en cours n'est pas terminée.

Le 2PL empêche-t-il tous les problèmes ?

Il garantit la cohérence, mais il peut provoquer des ralentissements ou des blocages si trop de transactions se battent pour les mêmes données.