Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_bd.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
1.5 Mб
Скачать

7. Управление одновременным доступом.

Синхронизация достигается путём применения алгоритмов управления одновременным доступом, которые обеспечивают:

1) свойство сериализуемости, требующее, чтобы эффект множества одновременно выполняемых транзакций был эквивалентен эффекту от их последовательного выполнения при каком либо упорядочении;

2) свойство изолированности выполнения транзакций, заключающееся в том, что результат транзакции не может зависеть (т.е.изолирован) от других параллельно выполняемых транзакций.

Наиболее популярные алгоритмы управления одновременным доступом основаны на механизме блокировок. В такой схеме всякий раз, когда транзакция пытается получить доступ к какой-13либо единице памяти (как правило, странице), на эту единицу накладывается блокировка в одном из режимов – разделяемом или исключительном. Блокировки накладываются в соответствии с правилами совместимости блокировок, исключающими конфликты чтение–запись, запись–чтение и запись–запись. Существует теорема, что сериализуемость транзакций заведомо гарантируется, если блокировки, относящиеся к одновременно выполняемым транзакциям, удовлетворяют правилу:

Выполнение множества распределённых транзакций сериализуемо (свойство глобальной сериализуемости) тогда и только тогда, когда:

 выполнение этого множества транзакций сериализуемо на каждом узле;

 упорядочение транзакций на всех узлах одинаково.

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

7.1. Централизованный протокол двухфазной блокировки

При централизованном блокировании для всей распределённой базы данных поддерживается единая таблица блокировок. Эта таблица, располагаемая на одном из узлов, находится под управлением единого менеджера блокировок. Менеджер блокировок отвечает за установку и снятие блокировок от имени всех транзакций. Общая схема:

1. Координатор транзакций в узле разделяет глобальную транзакцию на несколько субтран-закций, отвечая за их согласованность. Если транзакция включает обновление элемента данных, координатор должен гарантировать, что все копии этого элемента будут обновлены. Для этого должны быть установлены блокировки на все копии и начато обновление каждой из них.

2. Локальные менеджеры транзакций приступают к выполнению запросов глобальной транзакции, обращаясь к менеджеру блкировок с соблюдением обычных правил протокола двухфазной блокировки.

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

С алгоритмом связаны две проблемы:

1) центральный узел может стать узким местом как из-за большого объёма обработки данных, так и из-за генерируемого вокруг него интенсивного сетевого трафика;

2) надёжность такой системы ограничена, поскольку отказ или недоступность центрального узла приводит к выходу из строя всей системы.

7.2. Двухфазная блокировка первичной копии

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]