En informática , el bloqueo conservador de dos fases (C2PL) es un método de bloqueo utilizado en DBMS y bases de datos relacionales .
2PL conservador evita los interbloqueos .
La diferencia entre 2PL y C2PL es que las transacciones de C2PL obtienen todos los bloqueos que necesitan antes de que comiencen las transacciones. Esto es para garantizar que una transacción que ya tiene algunos bloqueos no bloqueará la espera de otros bloqueos.
En la contención de bloqueos pesados, C2PL reduce el tiempo que los bloqueos se mantienen en promedio, en relación con 2PL y Strict 2PL, porque las transacciones que mantienen bloqueos nunca se bloquean.
En la contención de cerraduras ligeras, C2PL contiene más cerraduras de las necesarias, porque es difícil saber qué cerraduras se necesitarán en el futuro, por lo que conduce a una sobrecarga más alta.
Además, una transacción ni siquiera obtendrá ningún candado si no puede obtener todos los candados que necesita en su solicitud inicial. Además, cada transacción debe declarar su conjunto de lectura y escritura (elementos de datos que se leerán / escribirán durante la transacción), lo que no siempre es posible. Debido a estas limitaciones, C2PL no se usa con mucha frecuencia.