PyMongo在现有Database对象上设置read_preference不起作用?

时间:2013-07-26 16:19:42

标签: mongodb

我们正在使用PyMongo 2.5.2。我们有一个ReplicaSet配置,其中包含一个主要,一个辅助和一个仲裁。

如果我创建了与数据库的连接而未指定读取首选项,然后立即更改读取首选项,则在执行任何其他操作之前,如下所示:

db.read_preference = ReadPreference.SECONDARY

read_preference设置不起作用。我已经确认它不是以两种方式工作:

  • 我正在运行脚本时实时监控数据库,并且在我启动脚本后立即开始在主数据库而不是辅助数据库上看到页面错误。
  • 我的Rails应用程序(总是使用主数据库)的性能明显下降,直到我启动脚本后Rails开始记录15秒超时错误。

另一方面,如果我在创建数据库对象时指定read_preference = ReadPreference.SECONDARY作为关键字参数,而不是如上所示,那么首选项工作正常,脚本只与辅助对话。

我宁愿不仅仅是在创建数据库时使用关键字参数解决问题,原因有两个:

  • 创建数据库的代码位于共享代码模块中,由于不值得进入的原因,在不中断其他代码使用模块的情况下添加read_preference设置会很不方便。
  • 如果这里有一个真实的,诚实到善的错误,我想找到它并向10Gen的人报告,以便它可以修复,而不是简单地忽略它。

我做错了吗?其他人是否能够复制这个问题?

0 个答案:

没有答案