0

我在集群设置中有一个 couchdb。3 个节点,所有节点上的所有分片,W = 2。我们有代码在 couchdb 中创建一个文档并从视图中读取它。但是,视图间歇性地没有返回相应的数据。我们直接检查couchdb后数据就在那里。所以,我的问题是为什么第三个节点需要这么长时间来写入一个值,我应该期望写入延迟多长时间?

提前致谢。

4

1 回答 1

1

如果您查询视图而不使用stale参数,则视图应该始终返回新数据。视图将首先将自身更新到数据库,然后返回查询结果。

视图可以从任何节点获取结果。如果您查询视图,但没有获得预期的新数据,则意味着更新在所使用的节点上尚不可用。

如果写入 W = 2 的文档,则三个节点中至少有两个节点应该成功更新该文档。如果所有节点都启动,节点之间的内部同步,在几毫秒或几秒内应该会为所有节点带来更新。所以延迟应该只有几秒钟。

您经历了多长时间的延迟?在这种延迟之后,您的视图是否最终能够产生预期的结果?

于 2017-08-10T16:38:37.387 回答