Стандартные методы совместного доступа к БД.



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

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

1. централизированный протокол, 2 фазы блокировки

2. 2-фазная блокировка первичной копии

3. распределенной протокол 2 фазной блокировки

4. протокол блокирования большинства.

Центральный протокол блокирования

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

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

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

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

Недостатки:

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

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

 

Механизм блокирования первичной копии

 

 

Данный алгоритм используется для БД с репликацией, где копии одних и тех же данных могут храниться на нескольких узлах. Одна из таких копий выделяется как первичная, и для доступа к любому элементу данных этой копии необходимо установить блокировку на первичную копию. Множество первичных элементов данных известно всем узлам ВС. Поэтому запроса транзакции на блокирование копии направляется тем узлам, где хранятся первичные копии. При использовании такого алгоритма для обновления элементов данных достаточно установить блокировку только для записи элементов данных первичной копии. После того, как обновлена первичная копия, внесенные изменения отражаются на всех копиях элемента.

Недостатки:

1) алгоритм использования БД с нечастыми обновлениями

2) в случае отсутствия репликации данных алгоритм становится аналогичен алгоритму распределенного блокирования

 

Распределенный алгоритм блокирования

 

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

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

 

Протокол блокирования большинства

 

В данном алгоритме, когда транзакции требуется считать или записать элемент данных реплики, которые имеются на узлах, транзакция должна отправить запрос на блокирование этого элемента как минимум на половину узлов, где содержится копия элементов данных. Транзакция не продолжается, пока не будет установлено необходимое количество блокировок. Если эта операция не будет выполнена за определенный промежуток времени – транзакция отменяет запросы и информирует об этом узлы. Если достигнуто необходимое количество блокировок, об этом информируются узлы и устанавливается либо разделяемая блокировка (для чтения), либо монопольная (для записи)

 


Дата добавления: 2018-04-15; просмотров: 255; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!