Как стать автором
Обновить

Комментарии 12

НЛО прилетело и опубликовало эту надпись здесь

Хранимые процедуры тоже можно вызывать параллельно, там тоже случаются дедлоки и прочие неожиданности, только их отладить бывает сложнее. А если СУБД MySQL, то нужна особая эрудиция, чтобы найти причину ошибки в хранимой процедуре.

Плохой совет, код в хранимке не продебажить, чтобы его обновлять и поддерживать нужны танцы, версионирования нормального нет. А проблема не уйдёт, внутри хранимок тоже надо организовывать синхронизацию потоков.

А почему бы в первом примере не написать SELECT FOR UPDATE. Разве это не исключит ошибку?

Если данных еще нет в базе, то FOR UPDATE не залочит запись, так как ее еще нет. Поэтому ошибка останется.

В postgresql есть с недавних пор INSERT ... ON CONFLICT DO, который хорошо решает вышеописанные проблемы.
Тем не менее, спасибо за рассказанный способ тестирования.

НЛО прилетело и опубликовало эту надпись здесь
в mysql есть INSERT ... ON DUPLICATE KEY IGNORE|UPDATE но статья как я понимаю не об этом
Это ж как надо не любить читать комментарии, а сразу отвечать
Проблема в одобрении комментариев: Grogina мог написать комментарий раньше sumanai, но вот при одобрении комментария меняется дата на время одобрения.
Разработчики явно знают про этот баг, но исправлять не спешат.
всегда рад услышать новое о себе, спасибо русскоязычным комьюнити за это.
VJean похоже вы правы, забавно что у нас с sumanai даже стиль комментария совпадает.

А почему не писать сразу Thread safe, что б потом не отлавливать racecondition?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации