我们注意到这个问题,即“安全”写入数据库的数据在几秒钟后(比如 2 秒)不可用。基本上,我们对集合进行一些安全写入(在 web worker/request 中),并期望数据可以从另一个进程(Sidekiq worker)获得。
任何人都知道为什么会发生这种情况,或者有人看到过 MongoDB 的类似行为吗?
我们的应用程序是 Rails 3.2.9/Ruby 1.9.3/Mongo 2.0.4 应用程序。我们Mongoid
用作 ORM 工具。
以下是我们如何进行安全写入:
account.safely.save!
此外,为此集合启用了分片,服务器上的负载很大。
以下是我们使用的宝石:
gem 'mongo', '1.6.1'
gem 'mongoid', '2.4.10'