Теория баз данных


         

Параллельное выполнение транзакций - часть 8


Перечень действий, которые совершают транзакции над объектами, приведен в табл. 11.1.

Рис. 11.10. Пример графа ожиданий транзакций Таблица 11.1. Перечень действий множества транзакций

Время

Транзакция

Действие

0

Т1

Select A

1

Т2

Select В

2

Т1

Select С

3

Т4

Select D

4

Т5

Select A

5

Т2

Select E

6

Т2

Update E

7

ТЗ

Select F

8

Т2

Select F

9

Т5

Update A

10

Т1

Commit

11

Т6

Select A

12

Т5

Commit

13

Т6

Select С

14

Т6

Update С

15

Т7

Select G

16

Т8

Select H

17

Т9

Select G

18

Т9

Update G

Время

Транзакция

Действие

19

Т8

Select E

20

Т7

Commit

21

Т9

Select H

22

ТЗ

Select G

23

Т10

Select A

24

Т9

Update H

25

Т6

Commit

26

Т11

Select С

27

Т12

Select D

28

Т12

Select С

29

Т2

Update F

30

Т11

Update С

31

Т12

Select A

32

Т10

Update A

33

Т12

Update D

34

Т2

Select G

35

_

-

На графе объекты блокировки помечены типами блокировок, S — нежесткая (разделяемая) блокировка, X — жесткая (эксклюзивная) блокировка.

На диаграмме состояний ожидания видно, что транзакции Т9, Т8, Т2 и Т3 образуют цикл. Именно наличие цикла и является признаком возникновения тупиковой ситуации. Поэтому в момент 3 перечисленные транзакции будут заблокированы.

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

Критерием выбора является стоимость транзакции; жертвой выбирается самая дешевая транзакция. Стоимость транзакции определяется на основе многофакторной оценки, в которую с разными весами входят время выполнения, число накопленных захватов, приоритет.



Содержание  Назад  Вперед