Неповторяемое считывание
Транзакция A дважды читает одну и ту же строку. Между этими чтениями вклинивается транзакция B, которая изменяет значения в строке.
Время | Транзакция A | Транзакция B |
S-блокировка - доступна | --- | |
Чтение | --- | |
--- | X-блокировка - недоступна | |
--- | Ожидание… | |
Повторное чтение | Ожидание… | |
COMMIT (Блокировка снимается) | Ожидание… | |
--- | X-блокировка - доступна | |
--- | Запись | |
--- | COMMIT (Блокировка снимается) | |
Все правильно |
Результат. Транзакция B притормозилась до окончания транзакции A. В результате транзакция A дважды читает одни и те же данные правильно. После окончания транзакции A, транзакция B продолжила работу в обычном режиме.