Назовите реально применённый уровень изоляции и способ защиты инвариантов: условные обновления, row locks или serializable. Конфликты требуют контролируемого повторения транзакции.
Какие уровни изоляции и блокировки использовали в PostgreSQL? Как избегали дедлоков и конкурентных конфликтов?
Назовите реально применённый уровень изоляции и способ защиты инвариантов: условные обновления, row locks или serializable. Конфликты требуют контролируемого повторения транзакции.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Назовите реально применённый уровень изоляции и способ защиты инвариантов: условные обновления, row locks или serializable. Конфликты требуют контролируемого повторения транзакции.
Для предотвращения deadlock держите транзакции короткими и блокируйте несколько объектов в одном порядке. Не выполняйте медленные внешние вызовы под DB-lock. Ошибки сериализации и deadlock могут требовать повторить всю транзакцию, а не последнюю команду; повторы ограничивают и делают безопасными. Не приписывайте проекту уровень изоляции, если использовался default и вы его не проверяли.