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

Знаком ли с паттерном оптимистическая блокировка

Да, знаком. Оптимистическая блокировка — это стратегия управления конкурентным доступом без явных блокировок. Основана на предположении, что конфликты редки.

Как работает:

  1. Запись имеет версию (timestamp, число)
  2. При чтении сохраняем версию
  3. При обновлении проверяем, что версия не изменилась
  4. Если версия изменилась — откатываем транзакцию

Пример с JPA/Hibernate:

java
@Entity
public class Account {
    @Id
    private Long id;
    private BigDecimal balance;
    
    @Version
    private int version; // автоматически инкрементится при обновлении
}

// В сервисе:
@Transactional
public void transfer(Long accountId, BigDecimal amount) {
    Account account = accountRepository.findById(accountId);
    account.setBalance(account.getBalance().add(amount));
    // При коммите Hibernate проверит version
}

Плюсы:

  • Нет блокировок → лучше масштабируемость
  • Подходит для редких конфликтов

Минусы:

  • При конфликте нужно повторять операцию
  • Не подходит для частых конкурентных изменений
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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