Я пытаюсь написать код базы данных, чтобы убедиться, что он не зависит от условий гонки, чтобы убедиться, что я заблокировал правильные строки или таблицы. Но я часто задаюсь вопросом: правильный ли мой код? Можно ли заставить какие-либо существующие расы проявить себя? Я хочу быть уверен, что если они произойдут в производственной среде, мое приложение будет работать правильно.
Я обычно точно знаю, какой параллельный запрос может вызвать проблему, но я не знаю, как заставить их запускаться одновременно, чтобы увидеть, происходит ли правильное поведение (например, я использовал правильный тип блокировки), что правильные ошибки брошенный и т. д.
Примечание: я использую PostgreSQL и Perl, поэтому, если на этот вопрос нельзя дать общий ответ, его, вероятно, следует пометить заново.
Обновление: я бы предпочел, чтобы решение было программным. Таким образом, я могу написать автоматизированные тесты, чтобы убедиться, что нет регрессий.