Вопросы к Поиску с Алисой
Потеря обновления (lost update) в PostgreSQL при использовании уровня изоляции READ COMMITTED возникает из-за одновременного изменения одних и тех же данных разными транзакциями. slonik.readthedocs.io lk.msu.ru
После фиксации изменений может оказаться, что одна транзакция перезаписала данные, обновлённые и зафиксированные другой транзакцией. slonik.readthedocs.io lk.msu.ru
Например, две транзакции собираются изменить сумму на одном и том же счёте на 100 рублей. slonik.readthedocs.io Первая транзакция читает текущее значение (1000 рублей), затем вторая транзакция читает то же значение. slonik.readthedocs.io Первая транзакция увеличивает сумму (получается 1100 рублей) и записывает это значение. slonik.readthedocs.io Вторая транзакция уменьшает сумму — получает 900 рублей и записывает их. slonik.readthedocs.io В результате клиент теряет 200 рублей. slonik.readthedocs.io
Потерянное обновление не допускается стандартом ни на одном уровне изоляции. slonik.readthedocs.io