2014-10-22 37 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是非常一致的,但意見最終一致。