Le verrouillage conservateur en deux phases (C2PL) diffère du verrouillage en deux phases (2PL) en ce que les transactions obtiennent tous les verrous nécessaires avant le début de leur exécution. Ceci afin d'éviter qu'une transaction détenant déjà des verrous ne soit bloquée en attente d'autres verrous. Le C2PL prévient ainsi les interblocages .
En cas de forte contention de verrous , C2PL réduit la durée moyenne de maintien des verrous par rapport à 2PL et Strict 2PL, car les transactions qui détiennent des verrous ne sont jamais bloquées. En cas de faible contention de verrous, C2PL détient plus de verrous que nécessaire, car il est difficile de prédire quels verrous seront nécessaires à l'avenir, ce qui entraîne une surcharge plus importante.
Une transaction C2PL n'obtiendra aucun verrou si elle ne peut pas obtenir tous les verrous nécessaires lors de sa requête initiale. De plus, chaque transaction doit déclarer ses ensembles de lecture et d'écriture (les données qui seront lues/écrites), ce qui n'est pas toujours possible. En raison de ces limitations, C2PL est peu utilisé.
Verrouillage strict à deux phases
Pour se conformer au protocole de verrouillage strict en deux phases (S2PL), une transaction doit respecter le verrouillage en deux phases (2PL) et ne libérer ses verrous d'écriture (exclusifs) qu'une fois la transaction terminée (c'est-à-dire validée ou annulée ). En revanche, les verrous de lecture (partagés) sont libérés régulièrement pendant la phase de réduction.
Contrairement à 2PL, S2PL garantit la stricte (un cas particulier de récupération sans cascade). Ce protocole n'est pas adapté aux arbres B car il provoque un goulot d'étranglement (les arbres B effectuant toujours la recherche à partir de la racine parente).
Verrouillage strict à deux phases
ou la rigueur , ou la planification rigoureuse , ou le verrouillage rigoureux en deux phases
Pour respecter le verrouillage strict en deux phases (SS2PL), les verrous de lecture et d'écriture d'une transaction ne sont libérés qu'une fois celle-ci terminée (c'est-à-dire validée ou annulée). Une transaction respectant le SS2PL ne comporte qu'une phase 1 et est dépourvue de phase 2 jusqu'à son achèvement. Tout ordonnancement SS2PL est également un ordonnancement S2PL, mais l'inverse n'est pas vrai.