Классика баз данных - статьи

       

Структурные блокировки


В XDGL поддерживаются следующие виды структурных блокировок:

  • Блокировка SI (shared into). Эта блокировка используется в операции Ii. Блокировка устанавливается на узел схемы, который соответствует целевым узлам этой операции. Блокировка SI запрещает какие-либо модификации узла, а также вставку других узлов в блокируемый узел. Аналогично определяются блокировки SA (shared after) и SB (shared before).
  • Блокировка X (exclusive). Эта блокировка используется в операциях I* и RN. Для операций I* эта блокировка устанавливается на узел схемы, который соответствует новым (вставляемым) узлам. Для операции RN блокировка устанавливается на переименовываемый узел, а также на узел схемы, соответствующий новому узлу (узлу с новым именем). X-блокировка запрещает какие-либо чтения или модификации нового узла операциями Q, I*, D и RN.
  • Блокировка S (shared). Эта блокировка используется во всех операциях, в которых используются путевые выражения XPath. Например, она устанавливается на узел схемы, соответствующий промежуточным результатам вычисления XPath. Эта блокировка запрещает какие либо изменения узла, включая его переименование. При этом блокировка не накладывает какие либо ограничения на потомков узла.
  • Блокировка ST (shared tree). Эта блокировка используется в операциях Q, I* и D. Она устанавливается на узел схемы и неявно блокирует в совместном режиме всех потомков этого узла. Таким образом, эта блокировка предотвращает какие-либо изменения внутри целого поддерева.
  • Блокировка XT (exclusive tree). Эта блокировка используется в операции D. Она устанавливается на узел схемы и неявно блокирует в монопольном режиме всех потомков этого узла.
  • Блокировка IS (intention shared). Эту блокировку требуется установить на каждого предка узла, который должен быть заблокирован в одном из разделяемых режимов. IS-блокировка гарантирует отсутствие блокировок на поддеревьях на верхних уровнях. Аналогично определяется блокировка IX (intention exclusive).

Таблица совместимости структурных блокировок показана на рис. 4. Символ '+' на рисунке обозначает совместимость блокировок. Символ 'P' обозначает условную несовместимость типов блокировок, и решение о наличии или отсутствии конфликта должно приниматься на основе предикатов, которые мы обсудим в следующем подразделе.

Рис. 4.Матрица совместимости структурных блокировок XDGL



Содержание раздела