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




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


Транзакция B изменяет данные в строке. После этого транзакция A читает измененные данные и работает с ними. Транзакция B откатывается и восстанавливает старые данные.

Транзакция A

Время

Транзакция B

Все правильно

---
S-блокировка
- успешна
---
Чтение
---
X-блокировка
- успешна
---
Запись
S-блокировка
- отвергается
---
Ожидание…
Откат транзакции

(Блокировка снимается)

S-блокировка
- успешна
---
Чтение
---
Работа с прочитанными данными
---
---
---
Фиксация транзакции
---
   

Результат. Транзакция A притормозилась до окончания (отката) транзакции B. После этого транзакция A продолжила работу в обычном режиме и работала с правильными данными. Конфликт разрешен за счет некоторого увеличения времени работы транзакции A (потрачено время на ожидание снятия блокировки транзакцией B).




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