псевдоконфликты XML-транзакций в РСУБД)
В качестве примера XML-данных использовался документ XMark [], который описывает систему аукционов. Рассмотрим две конкурентные транзакции, выполняющие операции над XML-данными. Предположим, что первая транзакция выбирает все элементы item, в то время как вторая транзакция изменяет значения всех элементов price. Очевидно, что транзакции не должны конфликтовать, поскольку они работают с разными данными. Но планировщик транзакций в РСУБД заблокирует одну из транзакций до окончания второй, если элементы price и item хранятся в одном документе. Аналогичная ситуация возникнет в случае, когда читающая транзакция выполняется на основе боковых таблиц: изменяющая транзакция заблокирует боковую таблицу на запись с целью поддержки XML-документа и его боковых таблиц в согласованном состоянии и тем самым заблокирует первую транзакцию (или наоборот). Описанная ситуация в литературе [] известна как псевдоконфликт. Большое количество псевдоконфликтов и приводит к низкой степени параллелизма XML-транзакций.
В этой статье мы описываем метод, позволяющий устранить отмеченные недостатки. В предлагаемом методе используется двухуровневая модель транзакций [-]. В двухуровневой модели транзакций все транзакции второго уровня реализуются в виде набора транзакций первого уровня. В нашем случае XML-транзакция реализуется в виде набора транзакций над РСУБД.
Для реализации второго (семантического) уровня вводится дополнительный менеджер управления транзакциями SXTM (Sematic XML Transaction Manager). В результате на втором уровне планировщик конкурентных транзакций учитывает семантику выполняемых операций при определении конфликта между транзакциями. Транзакция второго уровня реализуется как набор субтранзакций нижнего уровня, которые освобождают установленные ими блокировки при своем завершении. В результате "семантические" блокировки на втором уровне устанавливаются на все время выполнения XML-транзакции, а "грубые" блокировки в РСУБД, устанавливаемые субтранзакциями, освобождаются гораздо раньше.
За счет этого производительность системы может существенно повыситься, особенно, если несколько транзакций одновременно читают и изменяют один и тот же документ. иллюстрирует общую архитектуру системы при использовании двухуровневой (слева) и одноуровневой (справа) моделей управления XML-транзакциями. В дальнейшем мы будем называть транзакции, поддерживаемые РСУБД, DB-транзакциями.
Ключевым компонентом SXTM является новый протокол изоляции XML-транзакций XDGL (XPath-based DataGuide Locking), в котором учитывается семантика XML- операций при определении конфликтов между транзакциями. В этой работе мы приводим только обзор этого протокола, а его формальное описание и обоснование можно найти в работе []. Важнейшей отличительной чертой XDGL является его независимость от метода хранения XML- документа. Это достигается за счет того, что в XDGL используется не сам XML-документ, а описывающая схема (DataGuide) [] этого XML-документа.
При делении XML-транзакции на субтранзакции необходимо сохранить свойство атомарности транзакций, когда все изменения данных, произведенные транзакцией, должны либо полностью присутствовать в БД, либо полностью отсутствовать в БД. В этой работе мы рассматриваем различные способы обеспечения атомарности XML-транзакций при использовании двухуровневой модели транзакций.
Важным дополнительным преимуществом SXTM является то, что DB-транзакции могут запускаться на втором уровне изоляции транзакций (READ COMMITTED) в соответствии со стандартом SQL, поскольку протокол XDGL сам гарантирует сериализацию XML-транзакций. Это позволяет увеличить параллелизм DB-транзакций.
Для экспериментальной оценки, SXTM был реализован в виде дополнительного компонента для системы Microsoft SQL Server 2005. Мы провели оценку производительности системы при использовании SXTM ( слева) и плоской модели транзакций ( справа) и выявили существенное повышение производительности при использовании SXTM.
Структура статьи. В разд. 2 описываются используемые языки запросов и изменений XML-данных.В разд. 3 мы описываем общую архитектуру SXTM и обсуждаем ее преимущества. Разд. 4 посвящен обсуждению семантических особенностей XML-операций выборки и модификации, которые влияют на выбор типов блокировок для изоляции XML-операций. В разд. 5 рассматривается новый протокол изоляции XML-транзакций XDGL, приводится несколько примеров, демонстрирующих применение XDGL. Атомарность XML-транзакций обсуждается в разд. 6. Описание проведенных экспериментов с SXTM и анализ полученных результатов приводятся в разд. 7. В разд. 8 и 9 мы приводим обзор родственных работ по теме исследования и делаем заключительные выводы.