Qu'est-ce que Verrouillage à deux phases (2PL) ?

Méthode de contrôle de concurrence dans laquelle chaque transaction comporte 2 phases, l'une où elle pose des verrous et l'autre où elle les libère, et ne pose plus de nouveau verrou une fois qu'elle a commencé à en libérer. Elle garantit la sérialisabilité, mais des interblocages peuvent encore se produire.

Nom japonais: 2相ロック

« Verrouillage à deux phases (2PL) » apparaît dans 1 questions d'entraînement réparties sur 1 thèmes, dont Bases des bases de données.

Domaine: Bases des bases de données

S'entraîner : questions sur Verrouillage à deux phases (2PL)

Quelle proposition décrit correctement le verrouillage à deux phases (2PL), utilisé pour le contrôle de concurrence des transactions ?

  1. AUne transaction peut alterner autant de fois qu'elle le veut entre pose et libération de verrous. Cela garantit qu'aucun interblocage ne se produit
  2. BOn ne pose de verrous que pour les écritures, pas pour les lectures. Cela évite tous les problèmes, y compris les lectures sales
  3. CDès qu'une transaction a libéré un verrou, elle n'en pose plus de nouveau. Cela garantit qu'une exécution simultanée donne le même résultat qu'une exécution en série, mais des interblocages peuvent encore se produire
Afficher la réponse et l'explication

Réponse : C. Dès qu'une transaction a libéré un verrou, elle n'en pose plus de nouveau. Cela garantit qu'une exécution simultanée donne le même résultat qu'une exécution en série, mais des interblocages peuvent encore se produire

Avec le verrouillage à deux phases (2PL), chaque transaction comporte 2 phases : une phase où elle pose l'un après l'autre les verrous dont elle a besoin (phase de croissance) et une phase où elle les libère (phase de décroissance) ; une fois qu'elle a commencé à libérer des verrous, elle n'en pose plus de nouveaux. Si toutes les transactions respectent cette règle, le résultat d'une exécution simultanée est garanti identique à celui d'une exécution des transactions l'une après l'autre dans un certain ordre (sérialisabilité). Il ne peut toutefois pas empêcher un interblocage (deadlock), dans lequel 2 transactions attendent chacune que l'autre libère un verrou ; le SGBD détecte donc les interblocages et les traite, par exemple en annulant l'une des transactions. En pratique, on utilise couramment le verrouillage à deux phases strict, qui conserve les verrous exclusifs jusqu'à la validation ; il empêche aussi les autres transactions de lire des données non validées.

« Verrouillage à deux phases (2PL) » dans les explications

Questions mentionnant « Verrouillage à deux phases (2PL) » (1)

  1. Quelle proposition décrit correctement le verrouillage à deux phases (2PL), utilisé pour le contrôle de concurrence des transactions ?

Termes associés

Transaction Interblocage (deadlock) Base de données relationnelle Clé étrangère (foreign key) Clé primaire Diagramme E-R (entité-association) Index (index de base de données) Niveau d'isolation Normalisation NoSQL

Retour au glossaire