データベースに「安全に」書き込まれているデータが数秒後 (たとえば 2 秒後) に利用できないというこの問題に気付きました。基本的に、コレクションへの安全な書き込み (Web ワーカー/リクエスト内) を行い、データが別のプロセス (Sidekiq ワーカー) から利用できることを期待します。
なぜこれが起こっているのか、またはMongoDBで同様の動作を見た人はいますか?
私たちのものは、Rails 3.2.9/Ruby 1.9.3/Mongo 2.0.4 アプリケーションです。Mongoid
ORMツールとして使用しています。
安全な書き込みを行う方法は次のとおりです。
account.safely.save!
また、このコレクションではシャーディングが有効になっており、サーバーに大きな負荷がかかっています。
使用する gem は次のとおりです。
gem 'mongo', '1.6.1'
gem 'mongoid', '2.4.10'