2014-10-22 94 views
1

当我从Couchbase群集查询视图时,每台机器都会返回相同的视图查询结果吗?群集不一致性中的Couchbase视图

我期望集群返回相同的响应,而不管哪台机器实际响应请求。

+0

http://www.couchbase.com/wiki/display/couchbase/Couchbase+View+Engine+Internals,(eache machien将返回相同的reuslt,据我了解) – 2014-10-22 10:19:20

回答

1

你的应用程序有多严格地依赖于一致的视图结果?请记住,Couchbase索引是,最终一致性为,这意味着群集不会同时全部更新,特别是当数据量变化较大时。因此,对于已经存在一段时间的数据,您可能会期望机器之间具有一致的结果集;但是,最近更改的数据可能不会反映在最新的查看查询中。关键是设计你的应用来处理这种情况。

+0

谢谢,我做了一些更多的阅读问题,并且观点对我的用例来说是很好的。我发布的链接realy清除了事情,并使用“陈旧”的参数是重要的 – 2014-10-23 13:03:48

+0

只需要清楚,Couchbase本身是非常一致的,但意见最终一致。这是一个非常关键的区别 – Kirk 2014-10-23 15:15:57

+0

@Kirk,澄清的好点。 – theMayer 2014-10-23 21:41:22

0

Couchbase视图的存储分布在群集节点上,就像数据一样。例如,在三节点群集和一个视图中,视图的1/3将位于群集的每个节点上。每个群集上视图的一部分是与该节点上的vBuckets中的数据对应的部分。因此,当您查询Couchbase视图时,它会转到每个节点来处理该查询。在使用SDK时,这对你来说都是透明的,但这就是后台发生的事情。当重新平衡发生时,视图也会随着vBuckets的移动而改变。默认情况下,IndexAwareRebalances设置为true。

您还必须意识到更新视图的频率。默认情况下,如果有5000个数据突变,则每5秒钟一次。不是或。这些默认值可以调整,但是如果您只有1000个突变,索引器将不会自行运行。小心那个陈旧=错误的东西。它可以让你一直使用它,尤其是在重新平衡时。

此外,知道Couchbase是非常一致的,但意见最终一致。