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

Какие аномалии изоляций транзакций не могут случаться

В Java при использовании уровня изоляции SERIALIZABLE (наиболее строгого) предотвращаются все основные аномалии:

  1. Dirty Read - чтение незафиксированных изменений
  2. Non-repeatable Read - разные значения при повторном чтении
  3. Phantom Read - появление новых строк между чтениями

Пример с JDBC:

java
Connection conn = dataSource.getConnection();
conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE); // защита от всех аномалий

Однако даже SERIALIZABLE не защищает от:

  • Lost Update (потерянные обновления) - требуются явные блокировки
  • Write Skew (перекос записи) - нужны дополнительные ограничения

Для полной защиты часто используют:

java
entityManager.lock(entity, LockModeType.PESSIMISTIC_WRITE);
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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