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

Middle
690 просмотров
AFK Offer AI

Оптимистичная блокировка — подход, при котором ты не блокируешь ресурс при чтении, а при записи проверяешь, не изменил ли его кто-то другой. Обычно через колонку version или updated_at: читаешь строку с version=5, делаешь UPDATE ... WHERE id = X AND version = 5, если affected rows = 0 — кто-то успел раньше, повторяешь. Хорошо работает, когда конфликты редки — не держишь блокировку и не тормозишь конкурентов. Плохо, когда конфликты частые — куча retry. В Go реализуется просто через проверку result.RowsAffected() == 0.

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

Что такое stack?