Уровни изоляции
Версия 1.19 от Alexandr Fokin на 2023/01/09 02:56
Уровни изоляции
Уровень | Аномалия | Описание аномалии | ||
Потерянные изменения Lost Update | Последовательное обновление строки таким образом, что последнее изменение полностью не учитывает результаты предыдущего и перезаписывает их. | |||
READ UNCOMMITTED | Грязное чтение Dirty read | Считывания из БД данных/состояния, являющихся промежуточными или отмененными в будущем. Повторное чтение данных отобразит все изменения, выполненные другими транзакциями с момента предыдущего чтения, которые были закомичены. | ||
READ COMMITTED | Неповторяющееся чтение Non-repeatable read | В рамках транзакции при повторном чтении одной и той-же строки (по условию ключу), значение может меняться (изменено другой транзакций) или же строка может быть удалена. | ||
REPEATABLE READ | Фантомное чтение Phantom reads | В рамках транзакции при повторном чтении выборки, меняется кол-во строк (добавлены новые). | ||
SERIALIZABLE | Выполнение происходит так, словно транзакции выполняются последовательно одна за другой в некотором порядке (при этом явно не влияя друг на друга) | - | Полное отсутствие перечисленных выше аномалий. Повторное прочтение данных всегда возвращает одинаковые результат. |
Подходы к реализации изоляции.
Реализация | |
Изоляции на основе блокировок | |
Протокол изоляции на основе снимков Snapshot Isolation | MVCC |
Внутренние ссылки:
Дочерние страницы:
Обратные ссылки:
Уровни изоляции и несогласованность данных
http://www.t-sql.ru/post/nolock.aspx
PostgreSQL: Documentation: 15: 13.2. Transaction Isolation
https://www.postgresql.org/docs/current/transaction-iso.html
ept/hermitage
Hermitage: Testing transaction isolation levels
https://github.com/ept/hermitage
Consistency Models
https://jepsen.io/consistency