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

Что блокируется при Pessimistic Locking

При Pessimistic Locking блокируется доступ к конкретной записи в БД для других транзакций до завершения текущей.

Что блокируется:

  • SELECT FOR UPDATE – строка или диапазон строк (в зависимости от СУБД)
  • INSERT/UPDATE/DELETE – другие транзакции не могут изменять заблокированные данные
  • Оптимистичные блокировки – игнорируются, так как пессимистичная блокировка физическая

Пример (JPA/Hibernate):

java
EntityManager em = ...;
em.getTransaction().begin();
Product product = em.find(Product.class, 1L, LockModeType.PESSIMISTIC_WRITE);
product.setStock(product.getStock() - 1); // Другие транзакции ждут разблокировки
em.getTransaction().commit();

Нюансы:

  • Может привести к deadlock, если блокировки запрашиваются в разном порядке
  • Влияет на масштабируемость (долгие транзакции = очередь запросов)
  • Поддерживается не всеми БД одинаково (например, MySQL блокирует индексные записи)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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