2014-02-23 63 views
2

與Neo4j 1.9.3 HA簇相關,我們的團隊對於主簇節點的行爲如果HA簇「分裂」有一些不同解釋,這是由於網絡問題。我們試圖瞭解對主節點以及分支數據庫的影響,如果/當主服務器無法將更新傳遞給從服務器時發生分支數據庫。Neo4j:「分裂」簇中的主節點

給出一個5節點部署,其中網絡故障分裂東西分成兩組/子簇:

  • 組[A]由2個節點
  • 組[B]是由3個節點

給定組的每個成員都可以相互通信,但[A]不能與[B]通信。在拆分之前,原始主節點(5節點簇的節點)位於新的[A]或[B]組內。

問題:

如果原始主節點(在集羣節點的少數非仲裁基團,即)內[A]住,將其寫入鎖定其數據庫(知道它是一個分支在該點),直到它可以重新加入整個集羣,屆時它將向[B](因爲它具有法定人數而能夠選舉新的主人)選出的新主人兌現?

如果原來的主節點存在於[B](即在羣集節點的多數仲裁組中),它會繼續允許寫入其數據庫,而[A]將被寫鎖定,因爲它不會有主節點?或者是[A]中選出的高手,即使它沒有針對整個羣集的法定人數?

任何幫助非常感謝!

回答

2

Neo4j集羣中始終只有一個主設備。由於該集羣知道大選的成員數量超過一半的法定人數。在你所描述的方式分割的情況下,將發生以下情況:

  • 原主人住在少數劃分A:主會降低到從屬和服務只讀的請求,但不會接受寫入。分區B具有法定人數並將選擇新的主人。分區解決後,前主服務器將繼續作爲從服務器工作。

  • 原始主人住在多數分區B:主人仍然是主人並將交易傳播給B的其他成員。分區解決後,A的前成員將趕上缺失的交易。