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

       

В централизованных системах БД очень


других моделях данных.

3.1 Синхронизация доступа к данным

В централизованных системах БД очень распространено использование

двухфазного протокола синхронизационных захватов объектов БД. В

соответствии с этим протоколом объект БД автоматически

захватывается транзакцией в соответствующем режиме при первом

обращении, и все захваты данной транзакции освобождаются только

при ее завершении. В случае возникновения конфликта по

синхронизации транзакция блокируется, пока объект не будет

освобожден. Следование этому протоколу может привести к

возникновению синхронизационного тупика между двумя или более

транзакциями. Задача СУБД - распознать появление тупика и

разрушить его путем отката одной или нескольких транзакций.

Распознавание тупиков сводится к обнаружению циклов в графе

ожидания транзакций, что является трудоемкой задачей даже в

централизованных СУБД. В распределенных системах решение этой

задачи может потребовать неприемлемых накладных расходов (хотя

поиски алгоритмов с допустимыми затратами продолжаются).

Поэтому более часто в распределенных системах применяются

протоколы синхронизации, основанные на временных метках. Это

направление само по себе очень широко, имеются разные варианты и

даже комбинации с протоколом двухфазных захватов, но основной

проблемой реализации является отсутствие в распределенной системе

единого времени.

3.2 Управление транзакциями

В истинно распределенной СУБД транзакции естественно утрачивают

линейную структуру. Распределенная транзакция в общем случае

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

являются распределенные подтранзакции, а листья соответствуют

обычным линейным транзакциям локальных СУБД.

Основной проблемой управления транзакциями в этом случае является

корректное завершение (фиксация) распределенной транзакции.

Классическим решением является использование давно известного

протокола двухфазной фиксации. Однако прямое использование этого

протокола порождает значительное число служебных сообщений между


Содержание  Назад  Вперед