Устаревшая запись в многопроцессорной среде - PullRequest
3 голосов
/ 10 июля 2010

У меня есть база данных, которая разделяется между различными процессами Ruby on Rails.Чтобы сохранить согласованность, мне бы хотелось, чтобы запись, с которой я работаю, была актуальной.

Я надеюсь решить эту проблему: процесс A читает запись, процесс B читает ту же запись, процесс A обновляетзапись, (теперь экземпляр записи в процессе B устарел).Поскольку задействовано несколько процессов, я явно не могу использовать мьютексы и т. Д.

Есть ли какой-нибудь хороший способ сделать это?

1 Ответ

0 голосов
/ 10 июля 2010

У меня нет особого опыта в этом, но я бы изучил транзакции и блокировки.

http://api.rubyonrails.org/classes/ActiveRecord/Transactions/ClassMethods.html

http://api.rubyonrails.org/classes/ActiveRecord/Locking/Optimistic.html

http://api.rubyonrails.org/classes/ActiveRecord/Locking/Pessimistic.html

Оптимистичная блокировка звучит как наиболее подходящая для того, что вы делаете.

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