Hemos discutido brevemente el primer tipo de Protocolo de control de concurrencia , es decir, Protocolo basado en bloqueo.
Ahora, recordando donde lo dejamos por última vez, hay dos tipos de bloqueos disponibles Shared S(a) and Exclusive X(a) . Implementar este sistema de bloqueo sin ninguna restricción nos brinda el protocolo basado en Simple Lock (o Binary Locking ), pero tiene sus propias desventajas, no garantizan la Serializabilidad . Los horarios pueden seguir las reglas anteriores, pero puede resultar un horario no serializable.
Para garantizar la serialización, debemos seguir algún protocolo adicional relacionado con el posicionamiento de las operaciones de bloqueo y desbloqueo en cada transacción. Aquí es donde entra en escena el concepto de bloqueo de dos fases (2-PL), 2-PL garantiza la serialización. ¡Ahora, profundicemos!
Bloqueo de dos fases –
Se dice que una transacción sigue el protocolo de bloqueo de dos fases si el bloqueo y el desbloqueo se pueden realizar en dos fases.
- Fase de crecimiento: se pueden adquirir nuevos bloqueos en elementos de datos, pero no se puede liberar ninguno.
- Fase de reducción: los bloqueos existentes se pueden liberar, pero no se pueden adquirir nuevos bloqueos.
Nota: si se permite la conversión de bloqueo, se permite la actualización del bloqueo (de S(a) a X(a)) en la fase de crecimiento, y se debe realizar la degradación del bloqueo (de X(a) a S(a)). en fase de contracción.
Veamos una transacción que implementa 2-PL.
T 1 | T 2 | |
---|---|---|
1 | bloqueo-S(A) | |
2 | bloqueo-S(A) | |
3 | bloquear-X(B) | |
4 | ……. | …… |
5 | Desbloquear (A) | |
6 | Bloquear-X(C) | |
7 | Desbloquear (B) | |
8 | Desbloquear (A) | |
9 | Desbloquear (C) | |
10 | ……. | …… |
Esta es solo una transacción básica que muestra cómo funcionan el desbloqueo y el bloqueo con 2-PL. Nota para:
Transacción T 1 :
- La Fase de crecimiento es de los pasos 1-3.
- La Fase de reducción es de los pasos 5-7.
- Punto de bloqueo en 3
Transacción T 2 :
- La Fase de crecimiento es de los pasos 2-6.
- La Fase de reducción es de los pasos 8-9.
- Punto de bloqueo a las 6
¡Hey, espera!
¿ Qué es el PUNTO DE BLOQUEO? El punto en el que finaliza la fase de crecimiento, es decir, cuando una transacción toma el bloqueo final que necesita para llevar a cabo su trabajo. Ahora mira el horario, seguramente lo entenderás.
He dicho que 2-PL garantiza la serialización, pero aún existen algunos inconvenientes de 2-PL. Veamos los inconvenientes:
- La reversión en cascada es posible con 2 PL.
- Los interbloqueos y el hambre son posibles.
Retrocesos en cascada en 2-PL:
veamos el siguiente cronograma:
Tómese un momento para analizar el horario. Sí, tiene razón, debido a Dirty Read en T 2 y T 3 en las líneas 8 y 12 respectivamente, cuando T 1 falló, también tenemos que deshacer otros. Por lo tanto, las Reversiones en Cascada son posibles en 2-PL. He tomado los esquemas de programación como ejemplos porque es fácil de entender cuando se mantiene simple. Cuando se explica con problemas de transacciones en tiempo real con muchas variables, se vuelve muy complejo.
Deadlock en 2-PL:
considere este ejemplo simple, será fácil de entender. Digamos que tenemos dos transacciones T 1 y T 2 .
Schedule: Lock-X1(A) Lock-X2(B) Lock-X1(B) Lock-X2(A)
Dibujando el gráfico de precedencia, puede detectar el bucle. Entonces Deadlock también es posible en 2-PL.
El bloqueo de dos fases también puede limitar la cantidad de simultaneidad que ocurre en un cronograma porque es posible que una Transacción no pueda liberar un artículo después de haberlo usado. Esto puede deberse a los protocolos y otras restricciones que podemos poner en el cronograma para garantizar la serialización, la libertad de puntos muertos y otros factores. Este es el precio que tenemos que pagar para asegurar la serialización y otros factores, por lo que puede considerarse como una ganga entre la concurrencia y el mantenimiento de las propiedades ACID.
El tipo de 2-PL mencionado anteriormente se llama Basic 2PL . En resumen, garantiza la serialización de conflictos, pero no evita la reversión en cascada y el punto muerto. Además, estudiaremos otros tres tipos de 2PL, 2PL estricto, 2PL conservador y 2PL riguroso.
Preguntas relacionadas con GATE: