2014-02-23 32 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的前成员将赶上缺失的交易。