Ответы на экзамен по Информационному обеспечению систем управления - Использование X- и S-блокировок при решении проблем параллельной работы транзакций

Использование X- и S-блокировок  при решении проблем параллельной работы транзакций. Решение проблем потери результатов обновления и незафиксированной зависимости.


Решение проблемы параллелизма с помощью применения блокировок

1)Проблема потери результатов обновления

 

А

Время

В

S-lock строки Р-успешна

t1

Х

Чтение Р=Ро

t2

х

-

t3

S-lock Р-успешна

-

t4

Чтение Р=Ро

X-lock Р-отвергаются

t5

-

ожидание

t6

X-lock Р-отвергаются

ожидание

t7

Ожидание

 

Возникла ситуация тупика (deod-lock)

 

2)Проблема незафиксированной зависимости

 

А

Время

В

Х

t1

S-lock строки Р-успешна

Х

t2

Чтение Р=Ро

Х

t3

Х-lock  Р-успешна

Х

t4

Запись Р1=Р

S-lock Р-отвергаются

t5

-

ожидание

t6

Фиксация(-//-) Откат(блокировки сняты)

S-lock  Р-успешна

t7

х

Чтение Р=Ро (Р1)

t8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                        

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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)Прежде чем для для данной транзакции будет отменена блокировка данного объекта должны быть отменены все блокировки дочерних объектов данного объекта.

 

 

 

 

 

 

Вы здесь: Home Автоматизация Ответы на экзамен по Информационному обеспечению систем управления