【发布时间】:2017-08-06 22:09:49
【问题描述】:
我在集群设置中有一个 couchdb。 3 个节点,所有节点上的所有分片,W = 2。我们有代码在 couchdb 中创建一个文档并从视图中读取它。但是,视图间歇性地没有返回相应的数据。我们直接检查couchdb后数据就在那里。所以,我的问题是,为什么第三个节点需要这么长时间来写入一个值,我应该期望写入延迟多长时间?
提前致谢。
【问题讨论】:
标签: couchdb couchdb-2.0
我在集群设置中有一个 couchdb。 3 个节点,所有节点上的所有分片,W = 2。我们有代码在 couchdb 中创建一个文档并从视图中读取它。但是,视图间歇性地没有返回相应的数据。我们直接检查couchdb后数据就在那里。所以,我的问题是,为什么第三个节点需要这么长时间来写入一个值,我应该期望写入延迟多长时间?
提前致谢。
【问题讨论】:
标签: couchdb couchdb-2.0
如果您查询视图而不使用stale 参数,则视图应该始终返回新数据。视图将首先将自身更新到数据库中,然后为您的查询返回结果。
视图可以从任何节点获取结果。如果您查询视图,但没有获得预期的新数据,则意味着更新在所使用的节点上尚不可用。
如果写一个 W = 2 的文档,那么三个节点中至少有两个节点应该成功更新这个文档。如果所有节点都启动,节点之间的内部同步,在几毫秒或几秒内应该会为所有节点带来更新。所以延迟应该只有几秒钟。
您经历了多长时间的延迟?在这种延迟之后,您的视图是否最终能够产生预期的结果?
【讨论】: