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 aplican a objetos que contienen otros objetos. MGL aprovecha la naturaleza jerárquica de la relación " contiene ". Por ejemplo, una base de datos puede tener archivos, que contienen páginas, que a su vez contienen registros. Esto puede considerarse como un árbol de objetos, donde cada nodo contiene a sus hijos. Un bloqueo en esta estructura (como un bloqueo compartido o exclusivo) bloquea tanto el nodo objetivo como todos sus descendientes. [ 1 ]
El bloqueo de granularidad múltiple se suele utilizar con un bloqueo de dos fases no estricto para garantizar la serializabilidad .
Modos de bloqueo
Además de los bloqueos compartidos ( S ) y 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 indican la existencia, o la intención de agregar, un bloqueo del tipo especificado en un nivel inferior de la jerarquía de nodos. Los bloqueos intencionales incluyen "intención compartida" ( IS ), "intención exclusiva" ( IX ) y los bloqueos combinados "compartidos y exclusivos" ( 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 ancestros 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 ancestros en X (o S y X ). Este protocolo se muestra en la siguiente tabla:
Para determinar el nivel de granularidad del bloqueo, se bloquea el nivel más fino posible (es decir, el nivel más bajo) y, a continuación, se amplía el bloqueo a niveles superiores de la jerarquía de archivos para abarcar más registros o elementos de archivo según sea necesario, en un proceso conocido como "escalada de bloqueo". Los modos de bloqueo de MGL son compatibles entre sí, tal como se define en la siguiente matriz.
Siguiendo el protocolo de bloqueo y la matriz de compatibilidad, si una transacción mantiene un nodo en modo S, ninguna otra transacción puede haber bloqueado ningún antecesor en modo X.
Véase también
Referencias
- Control de concurrencia