2014-01-05 27 views
0

我有一個疑問(一對夫婦)。我覺得我把握的答案,但即時尋找一個確認mongodb複製+分片一致性

可以說,我會實現的MongoDB分片集羣,是需要有一個副本中設置躺在旁邊的碎片?

我知道,如果我只用了replicaSet,我決定來分發輔助節點上的讀操作,這將導致最終一致性,對不對? 另一方面,如果我不啓用次要節點上的讀取,我將得到的「唯一」優勢是保護數據庫在一個節點將會下降的情況下

但是如何在分片 - replicaset?它仍然是最終一致的,或者是完全一致的?

回答

2

是需要有一個副本中設置躺在碎片

在你身邊沒有,但如果你關心可用性你會的。

我決定在二級節點上分配讀操作,它會導致最終一致性,對嗎?

是的,並且由於輔助人員收集儘可能多的OP作爲初選,並且大多數驅動程序只會從輔助閱讀中讀取一個輔助閱讀,這是毫無用處的。

「唯一」的優勢,我會得到的是保護數據庫中某個節點的情況下將下降

「唯一」?這是複製品集的全部要點,以產生自動故障轉移。這是存在的根本原因,它是一個很大的原因。

它仍然是最終一致的,或者它會完全一致嗎?

這取決於你在哪裏做你的閱讀,但如果你從次級在分片設置讀你不僅可以得到最終的一致性,但由於塊的運動也可能會重複的文檔。

如果你是從初選閱讀,那麼你會得到一分片副本集建立很強的一致性。

+0

謝謝你的回答!我把「唯一」放在引號內,完全是因爲我不想貶低它帶來的好處。對不起,我應該用另一個詞,它是我的英語XD 我試圖理解爲什麼在你說的最後一句話裏:從初選中讀。我的意思是,爲什麼複數?分片羣集中可以有多個主分區? – lese

+0

@lese確定分片副本設置爲每個碎片是逸岸主 – Sammaye

+0

@lese遺憾寫道,快速,每個碎片是具有其自身的主要和次級 – Sammaye