Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Объясни, что такое striped locking и когда он эффективнее обычного mutex.
Striped locking — это подход, когда один общий ресурс разделяется на множество независимых сегментов, каждый со своим mutex. Это снижает блокировки, позволяя параллелить операции.
Что такое optimistic locking и в каких кейсах он лучше pessimistic locking?
Optimistic locking предполагает, что конфликты редки: обновление проходит только если версия строки не изменилась. Pessimistic locking блокирует строку заранее. Оптимистичный лучше, когда число конфликтов низкое и блокировки вредны.
Что такое optimistic locking?
Optimistic locking — это подход, при котором блокировки не ставятся заранее. Предполагается, что конфликты возникают редко. При обновлении данных проверяется, не изменил ли их кто-то другой. Если данные изменились, операция завершается ошибкой. Такой подход хорошо масштабируется и снижает блокировки.
Что такое pessimistic locking?
Pessimistic locking — это подход, при котором данные блокируются сразу при чтении. Другие транзакции не могут изменить эти данные, пока блокировка не снята. Это предотвращает конфликты, но снижает производительность. Такой подход используется, когда вероятность конфликтов высока. Он чаще применяется в критичных бизнес-операциях.
Каким образом реализуется optimistic locking в JPA?
В JPA optimistic locking реализуется с помощью поля версии. Это поле помечается аннотацией @Version. При каждом обновлении сущности версия увеличивается. Если при сохранении версия в базе отличается от версии в объекте, JPA выбрасывает исключение. Таким образом предотвращается перезапись чужих изменений.
Рейтинг:
3
Сложность:
9
Рейтинг:
4
Сложность:
6
Рейтинг:
5
Сложность:
5
Рейтинг:
5
Сложность:
6
Рейтинг:
5
Сложность:
6