Comments 12
Хранимые процедуры тоже можно вызывать параллельно, там тоже случаются дедлоки и прочие неожиданности, только их отладить бывает сложнее. А если СУБД MySQL, то нужна особая эрудиция, чтобы найти причину ошибки в хранимой процедуре.
Плохой совет, код в хранимке не продебажить, чтобы его обновлять и поддерживать нужны танцы, версионирования нормального нет. А проблема не уйдёт, внутри хранимок тоже надо организовывать синхронизацию потоков.
А почему бы в первом примере не написать SELECT FOR UPDATE. Разве это не исключит ошибку?
В postgresql есть с недавних пор INSERT ... ON CONFLICT DO
, который хорошо решает вышеописанные проблемы.
Тем не менее, спасибо за рассказанный способ тестирования.
А почему не писать сразу Thread safe, что б потом не отлавливать racecondition?
Sign up to leave a comment.
Тестирование параллельных процессов