簡體   English   中英

Couchbase 中的故障轉移和強一致性

[英]Failover and strong consistency in Couchbase

我們有一個三節點 Couchbase 集群,具有兩個副本和持久性級別 MAJORITY。 這意味着在確認成功之前,突變將被復制到活動節點( node A )和兩個副本之一( node B )。

在一致性方面,如果node A變得不可用並且硬故障轉移過程在node A設法將突變復制到node C之前提升node C副本會發生什么?

根據文檔Protection Guarantees and Automatic Failover ,寫入是持久的但會立即可用?

@ingenthr 在這里回答。

假設順序是客戶端獲得持久性確認,然后觸發節點 A 的硬故障轉移,在故障轉移期間,集群管理器和底層數據服務將確定是否應為此將節點 B 或 C 提升為活動狀態vbucket(又名分區)來滿足所有承諾的持久性。 這實際上是實施過程中比較棘手的部分之一。

“立即”幾乎是正確的。 從技術上講,升級 vbucket 確實需要一些時間,但這應該很短,因為它只是元數據檢查和 state 更改,不涉及任何數據移動。 客戶端也需要使用新拓撲進行更新。 環境的 function 需要多長時間以及其他情況,但我希望是個位數秒甚至不到一秒。 假設您使用的是現代 SDK API 3.x 客戶端,它會盡力重試,這對您的應用程序來說幾乎是透明的,但由於您正在進行硬故障轉移,因此不會完全透明。 例如,非冪等操作可能會冒出錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM