stringtranslate.com

Bloqueo de granularidad múltiple

En informática , el bloqueo de granularidad múltiple ( MGL ) es un método de bloqueo utilizado en sistemas de gestión de bases de datos (DBMS) y bases de datos relacionales .

En el bloqueo de granularidad múltiple, los bloqueos se establecen en objetos que contienen otros objetos. MGL explota la naturaleza jerárquica de la relación contiene . Por ejemplo, una base de datos puede tener archivos, que contienen páginas, que contienen registros. Esto se puede considerar como un árbol de objetos, donde cada nodo contiene sus hijos. Un bloqueo en esta estructura (como un bloqueo compartido o exclusivo) bloquea el nodo objetivo y todos sus descendientes. [1]

El bloqueo de granularidad múltiple generalmente se usa con un bloqueo de dos fases no estricto para garantizar la serialización .

Modos de bloqueo

Además de los bloqueos compartidos ( S ) y los bloqueos exclusivos ( X ) de otros esquemas de bloqueo, como el bloqueo estricto de dos fases, MGL también utiliza "bloqueos" intencionales, que no bloquean directamente un nodo, sino que denotan la existencia o intención. para agregar, un candado del tipo especificado más abajo en la jerarquía de nodos. Los bloqueos intencionales incluyen "intención compartida" ( IS ), "intención exclusiva" ( IX ) y los bloqueos combinados "compartidos e intención exclusiva" ( SIX ). Los bloqueos IS entran en conflicto con los bloqueos X , mientras que los bloqueos IX entran en conflicto con los bloqueos S y X. El bloqueo nulo ( NL ) es compatible con todo.

Para bloquear un nodo en S (o X ), MGL tiene el bloqueo de transacción en todos sus antecesores con IS (o IX ), por lo que si una transacción bloquea un nodo en S (o X ), ninguna otra transacción puede acceder a sus antecesores en X (o S y X ). Este protocolo se muestra en la siguiente tabla:

La determinación de qué nivel de granularidad usar para el bloqueo se realiza bloqueando el nivel más fino posible (es decir, en la hoja más baja) y luego escalando estos bloqueos a niveles más altos en la jerarquía de archivos para cubrir más registros o elementos de archivo según sea necesario en un proceso. conocido como "escalada de bloqueo". Los modos de bloqueo MGL son compatibles entre sí como se define en la siguiente matriz.

Siguiendo el protocolo de bloqueo y la matriz de compatibilidad, si una transacción contiene un nodo en modo S, ninguna otra transacción puede haber bloqueado ningún ancestro en modo X.

Ver también

Referencias

  1. ^ Jim Gray ; Raymond A. Lorie; G. R. Putzolu; Iriving L. Traiger (1976). "Granularidad de bloqueos y grados de coherencia en una base de datos compartida". Informe técnico de IBM . IBM. CiteSeerX  10.1.1.92.8248 .