Article de reference

Verrouillage à deux phases

Dans les bases de données et le traitement des transactions , le verrouillage en deux phases ( 2PL ) est une méthode de contrôle de concurrence pessimiste qui garantit la sérial...

Dans les bases de données et le traitement des transactions , le verrouillage en deux phases ( 2PL ) est une méthode de contrôle de concurrence pessimiste qui garantit la sérialisation des conflits . C'est également le nom de l'ensemble résultant des planifications de transactions de base de données (historiques). Le protocole utilise des verrous , appliqués par une transaction aux données, qui peuvent bloquer (interprétés comme des signaux d'arrêt) l'accès d'autres transactions aux mêmes données pendant la durée de vie de la transaction.

Grâce au protocole 2PL, les verrous sont appliqués et supprimés en deux phases :

  1. Phase d'expansion : les verrous sont acquis et aucun verrou n'est libéré.
  2. Phase de rétrécissement : les verrous sont libérés et aucun verrou n'est acquis.

Le protocole de base utilise deux types de verrous : les verrous partagés et les verrous exclusifs . Les améliorations du protocole de base peuvent utiliser davantage de types de verrous. En utilisant des verrous qui bloquent les processus, 2PL, S2PL et SS2PL peuvent être sujets à des blocages résultant du blocage mutuel de deux ou plusieurs transactions.

Lire et écrire des verrous

Les verrous sont utilisés pour garantir la sérialisabilité . Une transaction détient un verrou sur un objet si cette transaction a acquis un verrou sur cet objet qui n'a pas encore été libéré.

Pour 2PL, les seuls verrous d'accès aux données utilisés sont les verrous en lecture ( verrous partagés ) et les verrous en écriture ( verrous exclusifs ). Vous trouverez ci-dessous les règles relatives aux verrous en lecture et en écriture :

  • Une transaction est autorisée à lire un objet si et seulement si elle détient un verrou en lecture ou en écriture sur cet objet.
  • Une transaction est autorisée à écrire un objet si et seulement si elle détient un verrou en écriture sur cet objet.
  • Un planning (c'est-à-dire un ensemble de transactions) est autorisé à détenir simultanément plusieurs verrous sur le même objet si et seulement si aucun de ces verrous n'est un verrou en écriture. Si un verrou non autorisé tente d'être détenu simultanément, il sera bloqué.

Variantes

Verrouillage à deux phases

Selon le protocole de verrouillage en deux phases , chaque transaction gère ses verrous en deux phases distinctes et consécutives lors de l'exécution de la transaction :

  1. Phase d'expansion (également appelée phase de croissance) : les verrous sont acquis et aucun verrou n'est libéré (le nombre de verrous ne peut qu'augmenter).
  2. Phase de rétrécissement (ou phase de contraction) : les verrous sont libérés et aucun verrou n'est acquis.

Les règles de verrouillage en deux phases peuvent être résumées comme suit : chaque transaction ne doit jamais acquérir de verrou après avoir libéré un verrou. La propriété de sérialisation est garantie pour une planification avec des transactions qui obéissent à cette règle.

En règle générale, sans connaissance explicite dans une transaction à la fin de la phase 1, la règle n'est déterminée en toute sécurité que lorsqu'une transaction a terminé son traitement et a demandé la validation. Dans ce cas, tous les verrous peuvent être libérés en même temps (phase 2).

Verrouillage biphasé conservateur

La différence entre 2PL et C2PL est que les transactions de C2PL obtiennent tous les verrous dont elles ont besoin avant le début des transactions. Cela permet de garantir qu'une transaction qui détient déjà certains verrous ne se bloquera pas en attendant d'autres verrous. Le 2PL conservateur évite les blocages .

Verrouillage biphasé strict

Pour se conformer au protocole de verrouillage strict en deux phases (S2PL), une transaction doit être conforme au protocole 2PL et libérer ses verrous d'écriture (exclusifs) uniquement après la fin de la transaction (c'est-à-dire, validée ou abandonnée ). D'autre part, les verrous de lecture (partagés) sont libérés régulièrement pendant la phase de réduction.

Contrairement à 2PL, S2PL offre une certaine rigueur (un cas particulier de récupération sans cascade). Ce protocole n'est pas approprié dans les arbres B car il provoque un goulot d'étranglement (alors que les arbres B commencent toujours la recherche à partir de la racine parente).

Verrouillage biphasé strict et puissant

ou Rigueur , ou Ordonnancement rigoureux , ou Verrouillage biphasé rigoureux

Pour se conformer au verrouillage strict en deux phases (SS2PL), les verrous de lecture et d'écriture d'une transaction ne sont libérés qu'une fois cette transaction terminée (c'est-à-dire validée ou abandonnée). Une transaction obéissant à SS2PL n'a qu'une phase 1 et n'a pas de phase 2 jusqu'à ce que la transaction soit terminée. Chaque planification SS2PL est également une planification S2PL, mais pas l'inverse.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index