Что такое оптимистичная блокировка?
Уровень: Senior
Ответ
Механизм контроля параллелизма, когда при чтении данных не берутся блокировки, а проверка конфликтов выполняется при записи. Транзакция читает данные, выполняет работу, а при попытке сохранить изменения система проверяет, не изменились ли исходные данные другим потоком. Если да – транзакцию откатывают (или повторяют). Реализуется, например, через поле "версия записи": при обновлении проверяется, что версия не изменилась. Оптимистичная блокировка эффективна, когда конфликты редки – она не держит блокировки долго и обеспечивает высокую параллельность.