Pull to refresh

Comments 7

acqure_mutex()

Про разные инстансы, микросервисы и прочую лабуду мы не слышали.
Ну-ну.
Операцию с ценой проводите в базе транзакцией.

Да ну, пример вообще дурацкий. В ордере должна быть нормальная цена и отдельным айтемом купон со скидкой, если он передан. Причем добавление купона должно быть сделано путем не допускающим двойственность, типа merge.

Спасибо за комментарий!

Нашими специалистами выполнялось «black box»-тестирование, поэтому мы достоверно не можем знать, какой именно код на стороне клиента привел к ошибке. Можно бесконечно долго раскручивать представление о том, как работает система заказчика, и в результате «переизобрести» ее у себя. Однако не в этом смысл статьи.

Мы хотим обратить внимание на проблему связанную с багами данного рода. Показать, что их нельзя недооценивать и проверять приложение на их наличие необходимо.
Мьютекс здесь лишь создает иллюзию решения проблемы. Для черного ящика это решение можно рассматривать, но вы же пишете «интернет-магазин». Сложно обосновать предположение, что они работают без базы даных.
У вас хорошая иллюстрация к пояснению рэйса, и статья хорошая. Мьютекс — не в тему.
> Как защититься

использовать проверку с помощью моделей (model checking) для проверки алгоритмов (TLA+, Spin/Promela) и для проверки кода. Динамический анализ, например Thread Sanitizer.

Доходчиво объяснили полезность мьютекс объектов и как работает асинхронность, спасибо!

В конце статьи потоки зачем-то смешали с процессами. Зачем промокод вообще сделан отдельным POST запросом?

Sign up to leave a comment.