Введение в системы управления базами данных

         

в состояние ожидания до тех



Пример 7

Транзакция A Время Транзакция B Ожидание- Ожидание-
S-блокировка
в состояние ожидания до тех
- успешна
в состояние ожидания до тех
---
Чтение
в состояние ожидания до тех
в состояние ожидания до тех
---
---
в состояние ожидания до тех
S-блокировка
в состояние ожидания до тех
- успешна
---
в состояние ожидания до тех
Чтение
в состояние ожидания до тех
X-блокировка
в состояние ожидания до тех
- отвергается
в состояние ожидания до тех
---
Ожидание-
в состояние ожидания до тех
X-блокировка
в состояние ожидания до тех
- отвергается
Ожидание-
в состояние ожидания до тех
Ожидание-

Обе транзакции успешно накладывают S-блокировки и читают объект

в состояние ожидания до тех
. Транзакция A пытается наложить X-блокирокировку для обновления объекта
в состояние ожидания до тех
. Блокировка отвергается, т.к. объект
в состояние ожидания до тех
уже S-заблокирован транзакцией B. Транзакция A переходит в состояние ожидания до тех пор, пока транзакция B не освободит объект. Транзакция B, в свою очередь, пытается наложить X-блокирокировку для обновления объекта
в состояние ожидания до тех
. Блокировка отвергается, т.к. объект
в состояние ожидания до тех
уже S-заблокирован транзакцией A. Транзакция B переходит в состояние ожидания до тех пор, пока транзакция A не освободит объект.

Результат. Обе транзакции ожидают друг друга и не могут продолжаться. Возникла ситуация тупика.

Содержание раздела