- •Распределённые базы данных: основные понятия.
- •Аспекты сетевого взаимодействия (необходимые условия функционирования сурбд).
- •2.1. Прозрачность сети
- •2.2. Автоматическое преобразование форматов данных
- •2.3. Автоматическая трансляция кодов
- •2.4. Межоперабельность
- •4. Свойства ddb: обработка распределённых запросов, прозрачность расположения, прозрачная фрагментация, прозрачное тиражирование.
- •5. Свойства ddb: независимость от оборудования, независимость от операционных систем, прозрачность сети, независимость от баз данных.
- •6. Обработка и оптимизация запросов.
- •7. Управление одновременным доступом.
- •7.1. Централизованный протокол двухфазной блокировки
- •7.2. Двухфазная блокировка первичной копии
- •7.3. Распределённый протокол двухфазной блокировки
- •7.4. Протокол блокирования большинства
- •7.5 Альтернативные алгоритм
- •7.2.1. Централизованный метод
- •3. Сбой носителя (диска)
- •4. Коммуникационные сбои
- •9. Технология тиражирования данных.
- •10.Масштабируемость (расширяемость).
- •11. Производительность.
- •12. Смешанная загрузка субд (olcp).
- •13. Постоянная доступность данных.
- •14. Параллельные системы баз данных: общее понятие.
- •15. Цели и параметры параллелизма: ускорение и расширяемость.
- •16. Аппаратная архитектура.
- •17. Параллелизм внутри реляционных операторов.
7. Управление одновременным доступом.
Синхронизация достигается путём применения алгоритмов управления одновременным доступом, которые обеспечивают:
1) свойство сериализуемости, требующее, чтобы эффект множества одновременно выполняемых транзакций был эквивалентен эффекту от их последовательного выполнения при каком либо упорядочении;
2) свойство изолированности выполнения транзакций, заключающееся в том, что результат транзакции не может зависеть (т.е.изолирован) от других параллельно выполняемых транзакций.
Наиболее популярные алгоритмы управления одновременным доступом основаны на механизме блокировок. В такой схеме всякий раз, когда транзакция пытается получить доступ к какой-13либо единице памяти (как правило, странице), на эту единицу накладывается блокировка в одном из режимов – разделяемом или исключительном. Блокировки накладываются в соответствии с правилами совместимости блокировок, исключающими конфликты чтение–запись, запись–чтение и запись–запись. Существует теорема, что сериализуемость транзакций заведомо гарантируется, если блокировки, относящиеся к одновременно выполняемым транзакциям, удовлетворяют правилу:
Выполнение множества распределённых транзакций сериализуемо (свойство глобальной сериализуемости) тогда и только тогда, когда:
выполнение этого множества транзакций сериализуемо на каждом узле;
упорядочение транзакций на всех узлах одинаково.
В алгоритмах, основанных на блокировании, для обеспечения свойства глобальной сериализуемости применяется один из протоколов:
7.1. Централизованный протокол двухфазной блокировки
При централизованном блокировании для всей распределённой базы данных поддерживается единая таблица блокировок. Эта таблица, располагаемая на одном из узлов, находится под управлением единого менеджера блокировок. Менеджер блокировок отвечает за установку и снятие блокировок от имени всех транзакций. Общая схема:
1. Координатор транзакций в узле разделяет глобальную транзакцию на несколько субтран-закций, отвечая за их согласованность. Если транзакция включает обновление элемента данных, координатор должен гарантировать, что все копии этого элемента будут обновлены. Для этого должны быть установлены блокировки на все копии и начато обновление каждой из них.
2. Локальные менеджеры транзакций приступают к выполнению запросов глобальной транзакции, обращаясь к менеджеру блкировок с соблюдением обычных правил протокола двухфазной блокировки.
3. Менеджер блокировок проверяет совместимость поступающих запросов на блокировку элементов данных и либо устанавливает блокировку, либо ставит запрос в очередь.
С алгоритмом связаны две проблемы:
1) центральный узел может стать узким местом как из-за большого объёма обработки данных, так и из-за генерируемого вокруг него интенсивного сетевого трафика;
2) надёжность такой системы ограничена, поскольку отказ или недоступность центрального узла приводит к выходу из строя всей системы.
7.2. Двухфазная блокировка первичной копии
Блокирование первичной копии – это алгоритм управления одновременным доступом, применяемый для баз данных с репликациями, где копии одних и тех же данных могут храниться на множестве узлов.
. Множество первичных копий элементов данных известно всем узлам распределённой системы, и запросы на блокирование направляются тем узлам, где хранятся первичные копии (а данные могут быть из другого места). При обновлении элемента данных достаточно установить блокировку для записи только его первичной копии. После того как первичная копия будет обновлена, внесённые изменения могут 14быть распространены на все ведомые копии (желательно с максимальной скоростью). Алгоритм хорош для нечастых обновлений данных. Если в распределённой базе данных репликации не используются, то данный алгоритм сводится к алгоритму распределённого блокирования.
