2017-08-06 83 views
0

我在集羣設置中有一個couchdb。 3個節點,所有節點上的所有碎片以及W = 2。我們有代碼在couchdb中創建文檔並從視圖中讀回。但是,視圖間歇地不返回相應的數據。在我們直接檢查couchdb後,數據就在那裏。所以,我的問題是,爲什麼第三個節點花了這麼長的時間寫一個值,我應該等待多長時間寫入延遲?Couchdb集羣寫入行爲

在此先感謝。

回答

1

如果您查詢視圖而不是使用stale參數,視圖應始終返回新的數據。視圖首先會自動更新到數據庫,然後返回查詢結果。

視圖可以從任何節點獲取結果。如果查詢視圖並且沒有獲得預期的新數據,則意味着所用節點上的更新尚不可用。

如果寫入W = 2的文檔,則至少有兩個節點應該成功更新此文檔。如果所有節點都處於啓動狀態,則節點之間的內部同步(毫秒或幾秒)應該會將所有節點都更新。所以延遲應該是幾秒鐘。

您經歷的延遲時間有多長?您的觀點是否最終能夠在延遲後產生預期結果?

+0

感謝您的回答。我們並不知道如何測試節點間通信的延遲。我們只是建立了這個新的環境,所以沒有任何真正的運行。該觀點最終提供了正確的價值。 – leiz

+0

如果延遲是秒,那麼我認爲這太慢了。 – leiz