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

Версия 7.1 от Alexandr Fokin на 2023/12/16 14:12
Предупреждение: Из соображений безопасности документ отображается в ограниченном режиме, поскольку это не текущая версия. Из-за этого могут быть расхождения и ошибки.

Уровни изоляции
УровеньАномалияОписание аномалии
 Потерянные изменения
Lost Update
Последовательное обновление строки таким образом, что последнее изменение полностью не учитывает результаты предыдущего и перезаписывает их.
READ UNCOMMITTEDГрязное чтение
Dirty read

Считывания из БД данных, которые являются промежуточными или отмененными в будущем.
Чтение изменений, которые внесены активными транзакциями, и на текущий момент еще не закомичены.

READ COMMITTEDНеповторяющееся чтение
Non-repeatable read

В рамках транзакции при повторном чтении данных, отобразятся все изменения, выполненные и закомиченные другими транзакциями.

REPEATABLE READФантомное чтение
Phantom reads
В рамках транзакции при повторном чтении данных, может меняться кол-во строк
(Может быть связано с добавлением новых строк или изменение существующих таким образом, что они начали попадать в выборку.

Аномалия сериализации
Serialization anomaly

В PostgreSQL на данном уровне изоляции не возникает аномалии Phantom reads. Но может возникнуть данная аномалия.

При использовании теста из документации PostgreSQL на текущем уровне изоляции, аномалия также проявилась в MSSQL.

SERIALIZABLE-

Выполнение происходит так, словно транзакции выполняются последовательно одна за другой в некотором порядке (при этом не влияя друг на друга).

Полное отсутствие перечисленных выше аномалий.
Повторное прочтение данных всегда возвращает одинаковые результат.


Подходы к реализации изоляции.
 Реализация
Изоляции на основе блокировок 
Протокол изоляции на основе снимков
Snapshot Isolation
MVCC

Внутренние ссылки:

Дочерние страницы:
Обратные ссылки:

Не удалось выполнить макрос [velocity]. Причина: [The execution of the [velocity] script macro is not allowed in [xwiki:Разработка.Базы данных.SQL.Механизмы.Транзакции и блокировки.Уровни изоляции | Isolation levels.WebHome]. Check the rights of its last author or the parameters if it's rendered from another script.]. Нажмите на это сообщение для получения подробной информации.


Уровни изоляции и несогласованность данных
http://www.t-sql.ru/post/nolock.aspx

PostgreSQL: Documentation: 15: 13.2. Transaction Isolation
https://www.postgresql.org/docs/current/transaction-iso.html

К чему может привести ослабление уровня изоляции транзакций в базах данных
https://habr.com/ru/company/otus/blog/501294/


ept/hermitage
Hermitage: Testing transaction isolation levels
https://github.com/ept/hermitage

Consistency Models
https://jepsen.io/consistency