Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Протокол двухфазной блокировки




Протокол доступа к данным

1. Транзакция извлекающая картеж сначала должна наложить S блокировку на этот картеж.

2. Транзакция предназначенная для обновления картежа прежде всего должна наложить X блокировку на этот картеж.

3. Если запрашиваемая блокировка со стороны транзакции B отвергается из-за конфликта с блокировкой со стороны транзакции A, то транзакция B переходит в состояние ожидания. Это состояние будет продолжаться до тех пор, пока транзакция A не снимет блокировку.

4. X блокировки сохраняются вплоть до конца выполнения транзакции

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

Для обнаружения тупиковой ситуации СУБД может использовать хронометраж и состояние тупика оценивается по превышению некоторого времени. Некоторые системы позволяют автоматически перезапустить транзакции, которые привели к тупику. Другие системы отправляют сообщение в программу, из которой была выполнена транзакция жертва.

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

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

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

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

В соответствие с протоколом каждая транзакция может быть разделена на две фазы: фаза нарастания, в которой выполняются все необходимые блокировки не освобождается ни одного из элементов данных, и фаза сжатия, в которой снимаются все выполненные ранее блокировки и не может быть затребовано ни одной новой. Если СУБД поддерживает расширение уровня блокировки, то их выполнение допускается только в фазе нарастания. Снижение уровня блокировки допускается только в фазе сжатия.

Если A и B являются любыми транзакциями некоторого графика запуска, допускающего возможность упорядочивания, то либо A логически предшествует B, либо наоборот. То есть либо B использует результаты транзакции A, либо A использует результаты транзакции B.




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


Дата добавления: 2015-05-10; Просмотров: 1021; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.