1

我们注意到这个问题,即“安全”写入数据库的数据在几秒钟后(比如 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'
4

2 回答 2

0

在 GitHub 上查看这个 Mongoid 问题:

https://github.com/mongoid/mongoid/issues/2605

这方面的里程碑是 Mongoid 3.0.15——你使用的是 2.4.10,它非常古老

我建议升级.. 3.1 已经出来了。


大声笑 - 没关系 - 我只是从你的头像中意识到你打开了那个问题。:-)

于 2013-04-23T11:21:55.517 回答
0

您遇到这种情况是因为每个连接都有队列。这在使用连接池时很常见。从相同的连接中,您将获得一致的结果。

于 2012-12-07T22:41:11.483 回答