2017-08-06 84 views
0

我在集群设置中有一个couchdb。 3个节点,所有节点上的所有碎片以及W = 2。我们有代码在couchdb中创建文档并从视图中读回。但是,视图间歇地不返回相应的数据。在我们直接检查couchdb后,数据就在那里。所以,我的问题是,为什么第三个节点花了这么长的时间写一个值,我应该等待多长时间写入延迟?Couchdb集群写入行为

在此先感谢。

回答

1

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

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

如果写入W = 2的文档,则至少有两个节点应该成功更新此文档。如果所有节点都处于启动状态,则节点之间的内部同步(毫秒或几秒)应该会将所有节点都更新。所以延迟应该是几秒钟。

您经历的延迟时间有多长?您的观点是否最终能够在延迟后产生预期结果?

+0

感谢您的回答。我们并不知道如何测试节点间通信的延迟。我们只是建立了这个新的环境,所以没有任何真正的运行。该观点最终提供了正确的价值。 – leiz

+0

如果延迟是秒,那么我认为这太慢了。 – leiz