ВВЕДЕНИЕ В СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ



         

Собственно несовместимый анализ


Длинная транзакция выполняет некоторый анализ по всей таблице, например, подсчитывает общую сумму денег на счетах клиентов банка для главного бухгалтера. Пусть на всех счетах находятся одинаковые суммы, например, по $100. Короткая транзакция в этот момент выполняет перевод $50 с одного счета на другой так, что общая сумма по всем счетам не меняется.

Транзакция A

Время

Транзакция B

Ожидание…

Ожидание…

S-блокировка счета
- успешна
---
Чтение счета
и суммирование.

---
---
X-блокировка счета
- успешна
---
Снятие денег со счета
.

---
X-блокировка счета
- отвергается
---
Ожидание…
S-блокировка счета
- успешна
Ожидание…
Чтение счета
и суммирование.

Ожидание…
S-блокировка счета
- отвергается
Ожидание…
Ожидание…
Ожидание…

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




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