Вопрос на собеседовании · Backend-разработчик
Объясните уровни изоляции транзакций.
Короткий ответ, ключевые тезисы и ошибки, которых стоит избежать на интервью.
Уровень изоляции определяет, какие результаты параллельных транзакций может наблюдать текущая транзакция. Чем сильнее изоляция, тем проще рассуждать о данных, но тем выше возможная цена в блокировках, конфликтах или повторных попытках.
На интервью лучше объяснять уровни через аномалии: грязное чтение, неповторяющееся чтение, фантомы и потерянные обновления. Конкретное поведение зависит от СУБД и её реализации MVCC, поэтому полезно назвать базу, с которой вы работали.
01 · Структура ответа
Что важно сказать интервьюеру
Начните с определения, затем объясните механизм и закончите примером из практики. Для полного ответа раскройте эти тезисы:
02 · Пример
Как объяснить на практике
Две транзакции читают остаток товара и пытаются его уменьшить. Простого чтения на Read Committed недостаточно для защиты инварианта: нужны атомарное условное обновление, блокировка строки или корректная обработка конфликта.
Не заучивайте формулировку дословно. Свяжите принцип с задачей из собственного проекта — интервьюер почти наверняка попросит уточнить детали реализации и компромиссы.
03 · Ошибки
Чего избегать в ответе
04 · Углубление
Что могут спросить следом
- Что такое MVCC?
- Чем блокировка отличается от оптимистического контроля?
- Как избежать потерянного обновления?
Практика ответа
Ответьте вслух, а не про себя
Откроем тренировку сразу на этом вопросе. Выберите грейд, сформулируйте ответ и сравните его с опорой.
Mira