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

       

Родственные работы по теме исследования


За последние несколько лет исследователями по базам данных были предложены различные методы синхронизации операций над XML-данными. В этом разделе мы приведем краткий обзор этих методов, а также обсудим их достоинства и недостатки.

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

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

Древовидный протокол позволяет устанавливать блокировки на сами узлы документа. Но этот протокол накладывает слишком строгие ограничения на направление перемещения по XML-документу при переходе от одного узла к другому: можно перемещаться только сверху-вниз. В то же время в XPath существуют оси, которые позволяют перемещаться по XML-документу влево, право, вверх, вниз и т.д. от заданного узла. Таким образом, с использованием древовидного протокола можно поддерживать только ограниченное подмножество XPath.

Вторая группа методов [-] была предложена для синхронизации DOM-операций. В этих методах используются различные типы блокировок для захвата узлов в XML-документе на разных уровнях. Кроме того, в работе Хелмера [] обсуждается возможность применения DTD для повышения уровня параллелизма XML-транзакций. Но эти методы применимы только для DOM-операций и не могут использоваться для путевых выражений XPath и языка XQuery.

Третья группа методов [, ] характеризуется тем, что в них основным средством доступа к узлам XML-документа являются путевые выражения. В этих работах для синхронизации XML-операций предлагается использовать путевые блокировки (path locks). Но, к сожалению, эти методы обладают рядом недостатков. Так, подмножество поддерживаемых выражений XPath очень мало и не отвечает требованиям современных XML-приложений. Кроме того, для больших XML-документов (больше 100Мб) количество блокировок становится очень большим, что приводит к огромным накладным расходам. Заметим, что этим же недостатком обладают также и методы предыдущей группы.

Наконец, в работе Т. Грабса [] предлагается протокол DGLOCK, основанный на методе гранулированных блокировок для синхронизации доступа к XML-документам. Недостатки этого метода мы обсуждали выше. Кроме того, в [] рассматривается слишком ограниченное подмножество XPath. Дополнительным недостатком DGLOCK является то, что он не обеспечивает сериализацию транзакций, и при его использовании возможно появление фантомов.



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