2014-02-23 4 views
2

Neo4j 1.9.3 HA 클러스터링과 관련하여 우리 팀은 HA 클러스터가 a로 인해 '스플릿 (split)'되는 경우 마스터 노드가 어떻게 동작하는지에 대해 몇 가지 다른 해석을했습니다. 네트워크 문제. 마스터가 슬레이브에 업데이트를 전달할 수없는 경우 발생하는 분기 된 데이터베이스뿐만 아니라 마스터 노드에 미치는 영향을 이해하려고합니다.Neo4j : "스플릿"클러스터의 마스터 노드

주어 네트워크 실패가 두 그룹/서브 클러스터로 일을 분할하는 5 노드 배포 :

  • 그룹 [A]
  • 그룹 [B] 3 개 노드
  • 구성 2 개 노드로 구성

주어진 그룹의 각 구성원은 서로 통신 할 수 있지만 [A]는 [B]와 통신 할 수 없습니다. 분할 전에 5- 노드 클러스터의 원본 마스터 노드가 새로운 [A] 또는 [B] 그룹 내에 살았습니다.

질문 : 원본 마스터 노드 (클러스터 노드의 소수가 아닌 쿼럼 그룹에서 예) [A] 내에서 거주하는 경우

는, 그것이 지점이 시점에 있다는 것을 알고 (데이터베이스를 잠금 작성합니다) 전체 클러스터에 다시 합류 할 수있을 때까지 [B] (그것은 정족수를 가졌기 때문에 새로운 주인을 선출 할 수있었습니다)에서 새로 선출 된 주인을 존중할 것입니까?

원래 마스터 노드가 [B] (즉, 클러스터 노드의 다수 쿼럼 그룹)에 살았던 경우 [A]는 마스터가 없으므로 쓰기 잠금이되는 반면 계속해서 해당 데이터베이스에 쓰기를 허용합니까? ? 또는 전체 집단에 대한 정족수가 없더라도 [A]에서 선출 된 선생은 누구입니까?

은 어떤 도움이 많이 감사합니다!

답변

2

Neo4j 클러스터에는 항상 하나의 마스터 만 존재합니다. 클러스터는 회원 수를 알고 있기 때문에 마스터 선거에는 절반 이상의 정족수가 있어야합니다. 마스터 슬레이브 만 읽기 요청을 제공하기 위해이 저하하지만 쓰기를 허용하지 않습니다 :

  • 원본 마스터 소수 파티션 (A)에 살고 : 당신이 설명한 방식으로 분할의 경우 다음과 같은 상황이 발생합니다. 파티션 B에는 정족수가 있으며 새로운 마스터를 선출합니다. 파티셔닝이 해결되면 이전 마스터는 계속 슬레이브로 작동합니다.

  • 원본 마스터가 다수 파티션에 있습니다. B : 마스터가 계속 master이고 B의 다른 구성원에게 트랜잭션을 전파합니다. 분할이 해결되면 이전 구성원 A가 누락 된 트랜잭션을 따라 잡습니다.