проблема параллелизма: уменьшить кредит на счет - PullRequest
0 голосов
/ 29 октября 2009

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

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

Может кто-нибудь указать правильное направление для такой проблемы? Спасибо большое.

1 Ответ

0 голосов
/ 29 октября 2009

Это классическая проблема, которая полностью не зависит от языка (ов) реализации.

У вас есть общий ресурс, который поддерживает постоянное хранилище данных. (Обычно это база данных, скорее всего, СУБД).

У вас также есть (бизнес) процесс, который использует и / или изменяет информацию, хранящуюся в общем хранилище данных.

Когда этот процесс может выполняться одновременно несколькими участниками, возникает проблема информационной целостности.

Наиболее распространенный способ решения этой проблемы - сериализация доступа к общим ресурсам, чтобы операция с общими ресурсами выполнялась последовательно.

Эта сериализация может происходить на уровне субъекта или на самом общем ресурсе и может принимать различные формы, такие как действия с очередями, использование обмена сообщениями или использование транзакций на общем ресурсе. Именно здесь такие факторы, как тип системы, приложение, а также используемые платформы и системы, становятся важными и определяют структуру всей системы.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...