2013-10-26 54 views
0

假設我有設定W =多數作爲寫入期間關注的一個節點發生故障並且在寫入操作期間的一個節點發生故障,mongodb的如何確定多數如果寫操作

將大部分被改變根據當前活節點?

即,假設有3個節點。現在大多數是2.如果一個節點在寫操作期間發生故障,多數會減少還是保持不變,並等待節點出現?

+1

如果您有3個節點,一個失敗,兩個仍然佔多數。這是一個複製集配置多數,而不是大多數活動節點。因此,如果一個節點失敗,則來自主節點和剩餘活動副本的確認仍佔多數。該操作不會阻止第三個節點恢復。 –

回答

1

副本集的大部分是基於副本集配置而不是其當前運行狀態確定的。

換句話說,如果您配置了三節點副本集,則大多數總是兩個。如果一個節點處於脫機狀態,兩個仍然佔多數。如果兩個節點脫機,則兩個節點仍然是多數,並且直到其中一個脫機節點恢復聯機才能滿足。