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

Что происходит с транзакциями в параллельном режиме

В параллельном режиме транзакции выполняются одновременно, что может привести к проблемам согласованности данных. Основные проблемы:

  1. Lost Update – две транзакции читают одни данные, затем обе обновляют их, но последнее изменение перезаписывает первое.
  2. Dirty Read – чтение незафиксированных данных из другой транзакции, которая может быть откачена.
  3. Non-Repeatable Read – повторное чтение данных в одной транзакции возвращает разные значения из-за изменений другой транзакцией.
  4. Phantom Read – появление новых строк при повторном чтении из-за вставки другой транзакцией.

Пример с synchronized в Java:

java
public synchronized void transfer(Account from, Account to, int amount) {
    from.withdraw(amount);
    to.deposit(amount);
}

Для управления параллельностью используются:

  • Уровни изоляции (READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE)
  • Оптимистичные/пессимистичные блокировки
  • Синхронизация в коде (synchronized, Lock)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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