И так дорогие товарищи, прошу внимательно вчитаться в следующее описание проблемы и помочь с ее решением.
В неком проекте существуют пользователи. У этих пользователей есть общий баланс (скажем 10$). Общий баланс означает, что они оба могут пользоваться этими деньгами. С помощью этих денег на проекте можно преобретать некий товар. Суть проблемы в том, что действие приобретения товара имеет следующий вид (например пользователь №1 решил купить что-то):
1) Проверяются достаточно ли денег на общем балансе.
2) Если достаточно отсылается запрос на удаленный сервер, и ожидается подтверждение о возможности провести платеж.
3) После получения потверждения приобретается товар и снимаются деньги с пользователя.
Так, вот в момент, когда у пользователя №1 выполняется действие №2, пользователь №2 тоже начинает приобретать некий товар и для него выполняется действие №1, т.к. у первого пользователя действия три из-за долго ответа от удаленного сервера ещё не началось, деньги не снялись, то пользователь №2 успешно проходит действие №1. Но в итоге получается, что когда первый пользователь получает ответ и деньги снимаются, второго пользователя не остановить и он с таким же успехом доходит до действия №3, что может привести к появлению ОТРИЦАТЕЛЬНОГО баланса. А это крайне не допустимо.
Что можете посоветовать? Программный язык PHP, СУБД MySQL. Помогут ли в этом случае транзакции (я читал о свойствах транзакции, так называемые свойста АСИД, там все смутно, но вроде как говорят, что там не допускается выполнение двух транзакций одновременно)?
P.S. Снятие денег в действии №1 так же недопустимо, по другим соображениям.

Ответ на:
комментарий
от Anoxemian

Ответ на:
комментарий
от anonymous

Ответ на:
комментарий
от Anoxemian

Ответ на:
комментарий
от VirRaa

Ответ на:
комментарий
от VirRaa

Ответ на:
комментарий
от anonymous

Ответ на:
комментарий
от VirRaa

Ответ на:
комментарий
от VirRaa

Ответ на:
комментарий
от VirRaa

Ответ на:
комментарий
от INFOMAN

Ответ на:
комментарий
от anonymous

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Коллизии (2003)
- Форум Gentoo коллизия (2021)
- Новости Реальные MD5 коллизии (2005)
- Форум коллизии в сети (2004)
- Форум Как назвать (2008)
- Форум Коллизии в сценариях Puppet (2012)
- Форум Как избежать коллизий команд? (2011)
- Форум Все извесные djb2 коллизии (2019)
- Форум Mikrotik Capsman коллизия MAC (2017)
- Новости Найдены коллизии в MD5 (2004)