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

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

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

Проблема №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

Фиксация

х

х

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

27. Использование X- и S-блокировок блокировок при решении проблем параллельной работы транзакций. Решение проблем несовместимого анализа. 1)

Транзакция А

Время

Транзакция В

S-блок Р,чтение Р=Ро

t1

х

-

t2

S-успешно,Х-блок,Р-отвергается

Повторение читывания Р=Ро

t3

ожидание

Функция транзакции А

t4

ожидание

Х

t5

Х-блок,Р-успешна

х

t6

Запись Р1=Р

х

t7

Фиксация В

1)

2)

Транзакция А

Время

Транзакция В

S-блок строк,удовлетворяющих условия альфа

t1

х

Выборка строк по условию альфа.Отобрано n строк

t2

х

-

t3

Вставка строки,удовлетворяющей условия альфа

-

t4

фиксация

S-блок по альфа,выборка по условию альфа.Отобрано(n+1) строка

t5

фиксация

t6


3)

Транзакция А

Время

Транзакция В

S-блок Р1-успешна

t1

х

Чтение Р1=100,SUM=100

t2

х

-

t3

S-блок Р-успешна

-

t4

Чтение Р3=100

-

t5

Х-блок,Р3-успешна Р3=50

-

t6

S-блок Р1-успешна, Чтение Р1=100

-

t7

S-блок Р1-отвергнута

S-блок Р2-успешна. Чтение Р2=100,SUM=200

t8

ожидание

S-блок Р3-отвергнута.Ожидание

t9


Сотояние тупика.Вывод: в двух случаях проблема решалась,в двух других-тупик, одна проблема не устранилась

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