Уровни изоляции
Версия 1.7 от Alexandr Fokin на 2022/11/25 22:47
Уровень | Описание изоляции | Аномалия | Описание аномалии | |
Потерянные изменения Lost Update | Последовательное обновление строки таким образом, что последнее изменение полностью не учитывает результаты предыдущего и перезаписывает их. | |||
READ UNCOMMITTED | Блокировка изменяемых строк на запись, чтение разрешено. | Грязное чтение Dirty read | Считывания из БД данных/состояния, являющихся промежуточными или отмененными в будущем. | |
READ COMMITTED | Блокировка изменяемые строки на чтение и запись. | Неповторяющееся чтение Non-repeatable read | В рамках транзакции при повторном чтении одной и той-же строки (по условию ключу), значение может меняться (изменено другой транзакций) или же срока может быть удалена. | |
REPEATABLE READ | Блокировка изменяемых и читаемых строки на чтение и запись. | Фантомное чтение Phantom reads | В рамках транзакции при повторном чтении выборки, меняется кол-во строк (добавлены новые). | |
SERIALIZABLE | Полная изоляция, никаких изменений данных вне текущей транзакции. | - | Полное отсутствие аномалий. |
Протокол изоляции на основе блокировок |
Протокол изоляции на основе снимков Snapshot Isolation |
Уровни изоляции и несогласованность данных
http://www.t-sql.ru/post/nolock.aspx
ept/hermitage
Hermitage: Testing transaction isolation levels
https://github.com/ept/hermitage
Consistency Models
https://jepsen.io/consistency