Concurrency проблемы в БД: lost update (два обновления, второе перезаписывает первое), phantom read, dirty read. Тест lost update: Session 1 читает balance=100. Session 2 читает balance=100. Session 1 устанавливает balance=90. Session 2 устанавливает balance=95 (потеряли 10 единиц!). Решение: SELECT FOR UPDATE блокирует строку. Optimistic locking: поле version — UPDATE ... WHERE version = :oldVersion. Тестируем через два параллельных соединения. pgbench для нагрузочного тестирования concurrency.
Как тестировать concurrency issues в базе данных?
Senior
231 просмотровAFK Offer AI
Как тестировать versioning API?