集群不一致性中的Couchbase视图

集群不一致性中的Couchbase视图,couchbase,couchbase-view,Couchbase,Couchbase View,当我从Couchbase集群查询视图时, 每台计算机是否会为视图查询返回相同的结果 我希望集群返回相同的响应,而不管哪台机器实际响应请求。应用程序对一致的视图结果的依赖程度如何?记住Couchbase索引最终是一致的,这意味着不会同时更新所有集群,尤其是在数据更改量很大的情况下。因此,对于已经存在一段时间的数据,您可以期望机器之间的结果集是一致的;但是,最近更改的数据可能不会反映在最新视图查询中。关键是设计应用程序来处理这种情况。Couchbase视图的存储分布在集群节点上,就像数据一样。例如,

当我从Couchbase集群查询视图时, 每台计算机是否会为视图查询返回相同的结果


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

应用程序对一致的视图结果的依赖程度如何?记住Couchbase索引最终是一致的,这意味着不会同时更新所有集群,尤其是在数据更改量很大的情况下。因此,对于已经存在一段时间的数据,您可以期望机器之间的结果集是一致的;但是,最近更改的数据可能不会反映在最新视图查询中。关键是设计应用程序来处理这种情况。

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

您还必须了解视图更新的频率。默认情况下,每5秒一次,如果有5000个数据突变。不是,也不是。这些默认值可以调整,但如果例如只有1000个突变,索引器将不会自行运行。对那陈腐的东西也要小心。它会让你在使用它的时候陷入真正的麻烦,尤其是在重新平衡的时候


另外,要知道Couchbase是非常一致的,但是视图最终是一致的。

,(每个machien都会返回我理解的相同的reuslt)谢谢,我对这个问题做了更多的阅读,视图对我的用例很好。我发布的链接真的很清楚,使用“stale”param很重要。只是要清楚,Couchbase本身是非常一致的,但是视图最终是一致的。这是一个非常关键的区别。此外,这里还有一个小问题:Couchbase视图只对已持久化到磁盘(而不是RAM)的数据起作用。在文档中:“文档数据持久化到磁盘时,文档包含在视图中。”一些客户端可以确保您的“集合”将数据持久化到磁盘-您可能希望使用该功能。例如,在python中,请参考“persist_to”标志。