Write skew возникает, когда параллельные транзакции читают общий инвариант и меняют разные строки так, что вместе нарушают его. Полная сериализуемость исключает такую аномалию среди успешных транзакций.
Что такое аномалия Write Skew (перекос записи) и на каком уровне изоляции она полностью исчезает?
Write skew возникает, когда параллельные транзакции читают общий инвариант и меняют разные строки так, что вместе нарушают его. Полная сериализуемость исключает такую аномалию среди успешных транзакций.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Write skew возникает, когда параллельные транзакции читают общий инвариант и меняют разные строки так, что вместе нарушают его. Полная сериализуемость исключает такую аномалию среди успешных транзакций.
Пример: два дежурных видят, что другой остаётся, и каждый снимает собственное дежурство. Конфликта записи одной строки нет, но дежурных становится ноль. В PostgreSQL Repeatable Read допускает такой сценарий, Serializable может отменить одну транзакцию с требованием повторить её целиком. Альтернатива для конкретного инварианта — согласованная блокировка всех нужных данных или отдельного координационного объекта.
Источник: wiki.postgresql.org.