我在群集设置中有一个couchdb。 3个节点,所有节点上的所有分片,W = 2.我们有代码在couchdb中创建文档并从视图中读取它。但是,视图间歇性地不返回相应的数据。在我们直接检查couchdb之后,数据就在那里。所以,我的问题是为什么第三个节点花了这么长时间来写一个值,我应该期待写延迟多长时间?
提前致谢。
答案 0 :(得分:1)
如果查询视图而不使用stale
参数,则视图应始终返回新数据。视图首先会自动更新到数据库,然后返回查询结果。
视图可以从任何节点获取结果。如果查询视图,并且未获得预期的新数据,则表示所使用的节点上尚未提供更新。
如果写入W = 2的文档,则三个中至少有两个节点应该成功更新此文档。如果所有节点都已启动,则节点之间的内部同步(在几毫秒或几秒内)应该为所有节点带来更新。所以延迟应该只有几秒钟。
您遇到的延迟时间有多长?您的观点最终是否能够在延迟后产生预期结果?