Итак, моя команда разрабатывает API на PHP. Моя основная забота - это то, что случается, когда 2 человека требуют обновить ту же строку.Несколько приложений, получающих одни и те же данные
Таким образом, если один вызов API выполнит чтение, а затем информацию о процессе, то напишите, что произойдет, если другой вызов API сделает то же самое для одной и той же строки данных. Мы используем Postgres OR Mysql.
User has 100 dollars.
API Call 1 to ADD 20 1 reads 100.
API Call 2 to Subtract 20 reads 100.
API Call 1 writes 120;
API Call 2 write 80;(instead of 100);
Я знаю, что есть решение, связанное с блокировкой столов или строк, будет ли это решить мою проблему?
Мне нужно решение, в котором API-вызов 2 не прерывается, а скорее ждет или повторяет попытку.
[EDIT]
я должен идти более подробно о том, что мы делаем. Это браузерная игра MMO, в которой есть 2 части. PHP REST API и Java-сервер.
Браузер делает API AJAX GET API ex. : Build Factory за $ 40k PHP API Проверьте, достаточно ли средств и возвращаете JSON. SO - 40 тысяч долларов от игрока.
Наши тики сервера имеют одновременные вызовы базы данных с использованием функции boneCP для обновления значений, таких как средства.
Итак, из моего предыдущего примера CALL 1 будет нашим API-интерфейсом PHP, а CALL 2 будет тиком сервера.
Пересмотреть свойства ACID и убедиться, что они сохранены. После этого проверка SS2PL –
С помощью Postgres, использующего сериализуемый уровень изоляции, вы не сможете записать неправильное значение (вам придется иметь дело с ошибками) –