Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В информатике , множественный зернистость замок (MGL) представляет собой метод блокировки используется в системах управления базами данных (СУБД) и реляционных баз данных .

При множественном зернистости замок, замки устанавливаются на объектах , которые содержат другие объекты. MGL использует иерархическую природу из содержит отношения. Например, в базе данных могут быть файлы, содержащие страницы, содержащие записи. Это можно представить как дерево объектов, в котором каждый узел содержит своих дочерних элементов. Блокировка этой структуры (например, разделяемая или исключительная блокировка) блокирует целевой узел, а также всех его потомков. [1]

Блокировка с множественной гранулярностью обычно используется с нестрогой двухфазной блокировкой, чтобы гарантировать сериализуемость .

Режимы блокировки [ править ]

В дополнение к разделяемым ( S ) блокировкам и исключительным ( X ) блокировкам из других схем блокировки, таких как строгая двухфазная блокировка, MGL также использует преднамеренные «блокировки», которые не блокируют напрямую узел, а вместо этого обозначают наличие или намерение. чтобы добавить, замок указанного типа ниже в иерархии узлов. Преднамеренные блокировки включают в себя «совместное намерение» ( IS ), «исключительное намерение» ( IX ) и комбинированные «разделяемые и исключающие намерение» ( SIX ) блокировки. IS замки конфликт с X замками, в то время как IX замков конфликта с S и X замками. Нулевая блокировка ( NL) совместим со всем.

Чтобы заблокировать узел в S (или X ), MGL имеет блокировку транзакции на всех своих предках с IS (или IX ), поэтому, если транзакция блокирует узел в S (или X ), никакая другая транзакция не может получить доступ к своим предкам в X (или S и X ). Этот протокол показан в следующей таблице:

Определение того, какой уровень детализации использовать для блокировки, выполняется путем блокировки самого тонкого из возможных уровней (то есть на самом нижнем листе), а затем эскалации этих блокировок на более высокие уровни в файловой иерархии, чтобы охватить больше записей или файловых элементов по мере необходимости в процессе известное как «эскалация блокировки». Режимы блокировки MGL совместимы друг с другом, как определено в следующей матрице.

Согласно протоколу блокировки и матрице совместимости, если одна транзакция удерживает узел в режиме S, никакие другие транзакции не могут заблокировать какого-либо предка в режиме X.

См. Также [ править ]

Ссылки [ править ]

  1. ^ Джим Грей ; Раймонд А. Лори; Г. Р. Пуцолу; Айвинг Л. Трейгер (1976). «Гранулярность блокировок и степени согласованности в общей базе данных». Технический отчет IBM . IBM. CiteSeerX  10.1.1.92.8248 .