Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпрогалка / shpory_informacionnoe_obespechenie_sistem_upravleniya.doc
Скачиваний:
77
Добавлен:
17.02.2014
Размер:
1.07 Mб
Скачать

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

Общая картина возникновения тупика

Транзакция А

Время

Транзакция В

Блокировка.Р1-успешна

t1

х

t2

Блокировка.Р2-успешна

Попытка заблокировать Р2 отвергается

t3

-

ожидание

t4

Попытка заблокировать Р1 отвергается

t5

ожидание


Подходы к решению тупиковых ситуаций

1)СУБД не следит за возникновением тупиков, транзакции сами решают быть ли им “жертвами”

2)За возникновением тупиковой ситуации следит сама СУБД и она принемает решение какой транзакцией жертвовать.

Строится граф ожидания транзакций. В вершине находятся сами транзакции, замкнутый контур- тупик .

29. Понятие о преднамеренных блокировках. Is-, IX- и six-блокировки. Протокол доступа к данным с использованием преднамеренных блокировок

С помощью преднамеренных блокировок можно блокировать:

1)базу данных целиком, 2)отдельные файлы БД, 3)таблицы БД, 4)строки БД, 5)отдельные строки таблиц

6)отдельные поля таблиц

1)Преднамеренные блокировки с возможностью взаимного доступа IS-lock(InterntSharudLock)

2)Преднамеренные блокировки без взаимного доступа IX-lock(InterntExkusiveLock)

3)Преднамеренные блокировки как с возможностью взаимного доступа, так и без неё SIX-lock

Протокол преднамеренных блокировок

1)Если сложный объект заблокирован Х-lock, то она неявным образом задается для всех дочерних объектов

2)При задание S,SIXдля сложного объекта неявным образом задаютS-lockдля все дочерних объектов

3)Прежде чем транзакция наложит SилиIS-lockна заданный объект, она должна задатьISили более сильную блокировку по крайней мере для одного родительского объекта

4)Прежде чем транзакция наложит X,IX,SIXна заданный объект, она должна задать как минимумIX-lockили более сильную блокировку для всех родительских объектов.

5)Прежде чем для для данной транзакции будет отменена блокировка данного объекта должны быть отменены все блокировки дочерних объектов данного объекта.

30. Решение проблемы фиктивных элементов (фантомов) с использованием протокола преднамеренных блокировок для доступа к данным.

Транзакция А

Время

Транзакция В

S-lockтаблицы успешна

t1

х

S-lockпо условию альфа,nстрок

t2

х

-

t3

IX-lockтаблицы отвергнута

-

t4

ожидание

S-lockтаблицы успешна,nстрок

t5

ожидание

фиксация

t6

ожидание

х

t7

IX-lockтаблицы успешна. Вставка новой строки

х

t8

фиксация


31. Метод временных меток для сериализации транзакций. Каждому объекту приписывается метка, каждая транзакция тоже помечается временной меткой

1)Каждой транзакции Т приписывается временная метка, соответствующая началу этой транзакции.

2)Перед началом выполнения операций над объектом rБД, транзакция Т помечает его своей временной меткой и типом операции (чтение/запись)

3)Перед выполнением операций над rТр В выполняет следующие действия:

- проверяет не закончилась ли Тр А, пометившая этот объект

- если Тр А закончилась, Тр В помечает объект своей временной меткой и выполняет операцию

- если Тр А не завершилась, то Тр В проверяет конфликтность

А) если операция не конфликтна при объекте rостается или проставляется временная метка с меньшим значением, Тр В выполняет свою операцию.

Б) если транзакции А иВ конфликтуют, то

- временная метка Тр А > Тр В, Тр А отклоняется и получив свою временную метку начинается заново;Тр В продолжает работу

-если А<В ,В откатывается.

Соседние файлы в папке шпрогалка