Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Матрица совместимости блокировок




Понятия X- и S-блокировок, протокол доступа к данным с использованием этих типов блокировок.

Конфликты между транзакциями (типа W-W, R-W, W-R). Понятия последовательного, чередующегося, эквивалентного и верного (сериализуемого) графика запуска набора транзакций.

Проблемы параллельной работы транзакций. Проблема несовместимого анализа (три вида).

Фиктивные Элементы

Транзакция А время t Транзакция В
Выборка по условию α (отобрано n строк) -   - Выборка по условию α (отобрано (n+1) строк) Фиксация t1   t2   t3 t4   t5 х   Вставка строки, удовлетвор. условию α Фиксация х  

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

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

Проблема №2: проблема незафиксированной зависимости (неаккуратное считывание),(чтение грязных данных).

Проблема №3: проблема несовместимого анализа.

 

Транзакция А время t Транзакция В
чтение Р1=100, SUM=100 - - чтение Р2=100, SUM=200 чтение Р3=50, SUM=250 t1 t2 t3 t4 t5 х запись Р1=150, Р3=50 Фиксация х х

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

Конкурирующие транзакции – если они пересекаются по времени, обращаются к одним и тем же данным и хотя бы одна из них изменяет эти данные.

Типы конфликтов:

W-W (запись-запись) потеря результатов обновления

R-W (чтение-запись) неповторяемое считывание

W-R (запись- чтение) чтение «грязных» данных

График запуска набора транзакций называется ПОСЛЕДОВАТЕЛЬНЫМ, если транзакции выполняются строго по очереди, т.е. элементарные операции транзакций не чередуются друг с другом.

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

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

График запуска транзакций называется верным (сериализуемым), если он эквивалентен

какому-либо последовательному графику.


1.Монотельная блокировка (Х-блокировка)

(x-lock, x-exclusive) - блокировка без взаимного доступа, блокировка записи.

Если транзакция заблокировала данные x-lock, то всякий доступ к этим данным со стороны других транзакций отвергаются.

2.Разделяемая блокировка (S-блокировка,S-lock, S- shared)- блокировка чтения, блокировка с взаимным доступом.

 

Если транзакция заблокировала данные при помощи S- блокировки, то:

1) все запросы др. транзакций на х-блок. этих данных будут отвергнуты.

2) «-» на S-блокир будут приняты.

  Транзакции В пытается наложить
Транзакция А наложила S-lock x-lock
S-lock да нет (конфликт R-W)
x-lock нет (конфликт W-R) нет (конфликт W-W)

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

1. Прежде чем прочитать объект, транзакция должна наложить на этот объект S-lock

2. Прежде чем обновит объект, транзакция должна наложить на этот объект х-lock.

 

Если данные до этого были заблокированы S-lock, то перед обновлением она д.б. заменена на х-lock.

 

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

 

х-lock, наложенные транзакции сохраняются до конца этой транзакции.


26. Использование 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  

 

Проблема решена

 




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


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


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



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




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