[ Russian ] [ English ]

Методы повышения параллелизма XML-транзакций на основе двухуровневых моделей транзакций

П.О. Плешачков,
Институт системного программирования РАН,
peter@ispras.ru

В настоящее время накоплены огромные массивы данных в XML-формате. XML широко используется в приложениях, для которых требования надежности и согласованности данных играют определяющую роль. Во многих из этих приложений для хранения XML-данных используются реляционные СУБД (IBM DB2 v 8.2, MS SQL Server 2000/2005, Oracle 9i).

При параллельном выполнении нескольких транзакций над XML-данными возникает задача их сериализации. Эта задача, как правило, решается при помощи блокировок. Проведенный автором анализ существующих методов сериализации XML-транзакций в РСУБД показал их неэффективность: фактически XML-транзакции, запущенные одновременно, выполняются в РСУБД последовательно. Это происходит из-за того, что в методах блокирования реляционных данных совершенно не учитывается семантика иерархических структур, что приводит к большому количеству псевдоконфликтов между XML-транзакциями.

Автор предлагает метод повышения параллелизма (concurrency) XML-транзакций в РСУБД за счет применения двухуровневой модели транзакций [1, 2], в которой все операции верхнего (семантического) уровня реализуются как подтранзакции нижнего уровня. В нашем случае операция второго уровня (XML-операция) реализуется в виде набора подтранзакций над РСУБД.

Для реализации семантического уровня автором разработан дополнительный менеджер управления XML-транзакциями SXTM (Semantic XML Transaction Manager). В результате планировщик конкурентных транзакций учитывает семантику выполняемых XML-операций при определении конфликта между транзакциями. В свою очередь, транзакция на верхнем уровне реализуется как набор подтранзакций нижнего уровня, которые освобождают установленные ими блокировки при своем завершении. В результате "семантические" блокировки на втором уровне удерживаются на все время выполнения XML-транзакции, а "грубые" блокировки в РСУБД, устанавливаемые подтранзакциями, освобождаются гораздо раньше. За счет этого производительность системы может существенно повыситься, особенно, если несколько транзакций одновременно работают с одним и тем же XML-документом.

Ключевым компонентом SXTM является новый протокол изоляции XML-транзакций XDGL (XPath-based DataGuide Locking) [3][4], в котором учитывается семантика XML-операций при определении конфликтов между транзакциями. Важнейшей отличительной чертой XDGL является его независимость от метода хранения XML-документа. Это достигается за счет того, что XDGL опирается не на сам XML-документ, а на путеводитель (DataGuide) [5] по XML-документу. Кроме того, протокол не влечет больших накладных расходов, поскольку размер путеводителя, на основе которого устанавливаются блокировки, как правило, значительно меньше размера самого XML-документа.

Литература:

  1. G. Weikum. Principles and Realization Strategies of Multilevel Transaction Management. ACM Transactions on Database Systems (TODS), Vol. 16, Issue 1, (March 1991), pp. 132-180
  2. G. Weikum, C. Hasse. Multi-Level Transaction Management for Complex Objects: Implementation, Performance, Parallelism. VLDB Journal, 2, 1993.
  3. P. Pleshachkov, P. Chardin. S. Kuznetsov. A DataGuide-based Concurrency Control Protocol for Cooperation on XML Data. ADBIS 2005, Springer.
  4. P. Pleshachkov, P. Chardin, S. Kuznetsov. A Locking Based Scheduler for XML Proceedings of the 13th Italian Symposium on Advanced Database Systems (SEBD), June 2005, pp. 356-367.
  5. R. Goldman and J. Widom. DataGuides: Enabling Query Formulation and Optimization in Semistructured DataBases. VLDB 1997.
Supported by Synthesis Group