当我重新配置 Mongo 副本集时,我最终得到了一个随机递增的副本集版本号。一切正常,但我担心这个数字最终可能会溢出,因为它似乎呈几何级数递增。
如果我做:
conf = rs.conf()
并检查我会看到conf['version' ] = 1
然后我做:
conf['members'][0]['priority'] = 2
rs.reconfig(conf, {force:1})
它有效,我的 replset 已重新配置,但是当我这样做时:
conf = rs.conf()
conf['version']
是类似的东西24956
。如果我再做一次,它会变成83584
and then282961
等等(它并不总是那些确切的数字,但模式是相同的,随机大增量,通常加倍或更糟)。
即使我这样指定版本号,也会发生这种情况:
conf['members'][0]['priority'] = 2
conf['version'] = conf['version'] + 1
rs.reconfig(conf, {force:1})
有谁知道底层的 Mongo 发生了什么,以及如何让它具有可靠的版本号增量?(我在 Ubuntu 上运行 Mongo 2.0.2)。
顺便说一句,如果我通过 Mongo shell 执行此操作或使用 Pymongoconn.admin.command('replSetReconfig', config)
通过 Python 脚本执行此操作,则会发生这种情况。