Встречается на собеседованиях • сегодня

Какие знаешь аномалии при параллельном исполнении транзакций

В параллельных транзакциях возможны следующие аномалии:

  1. Потерянное обновление - две транзакции читают одни данные, затем обе пытаются их обновить, но последнее обновление перезаписывает первое.
java
// Транзакция 1: SELECT balance (100) → UPDATE balance = 100 + 50
// Транзакция 2: SELECT balance (100) → UPDATE balance = 100 + 20
// Результат: 120 (потеряно +50)
  1. Грязное чтение - чтение незафиксированных данных, которые могут быть откачены.
java
// Транзакция 1: UPDATE balance = 150 (не commit)
// Транзакция 2: SELECT balance → видит 150 (грязное чтение)
// Транзакция 1: ROLLBACK → баланс возвращается к 100
  1. Неповторяемое чтение - повторное чтение в одной транзакции возвращает разные данные из-за изменений другой транзакцией.

  2. Фантомное чтение - появление новых строк при повторном чтении из-за вставок другой транзакцией.

Для предотвращения используются уровни изоляции (READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE) и механизмы блокировок.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы