Уровни изоляции | Isolation levels

Версия 2.3 от Alexandr Fokin на 2023/01/10 02:05

Уровни изоляции
Уровень АномалияОписание аномалии
  Потерянные изменения
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

Теги:
Создал(а) Alexandr Fokin 2022/07/11 20:52