[컴][db] 몽고db의 replication sync source 선택

 

몽고db / mongodb replication set / replica set / how to sync / 동기화 방법 / 동기화 소스 선택 방법 / sync source selection

ref. 1 에 대한 번역이다.

몽고db의 replication sync source 선택

replica set 의 channing setting 에 달려있다. channing 의 기본값은 ‘enabled’ 이다.

  • channing setting 이 enabled 이면, replica set member 중에서 sync source 를 선택하는데,
  • channing 이 disabled 되어 있으면, primary 를 sync source 로 선택한다. 만약 primary 가 unavailable 또는 unreachable 하면, error 를 log 하고, 주기적으로 primary 가 가능한 상황인지를 체크한다.

다음 2개의 pass 를 거쳐서 sync source 를 선택한다. 만약 2가지 pass 후에도 sync source를 결정하지 못하면, error log 를 남기고, ‘1초’ 후에 selection process를 재시작 한다.

1번째 Pass

member 는 first pass 를 수행할 때, 각각의 replica set member 에게 다음 결정조건(criteria) 을 적용한다.

  • sync source 는 replication state 가 PRIMARY 또는 SECONDARY 여야 한다.
  • sync source 는 online 이면서 reachable 이어야 한다.
  • sync source 는 new oplog entry들을 가지고 있어야 한다.(즉, sync source 가 ahead of the member 여야 한다.)
  • sync source 는 visible 해야 한다.
  • sync source 는 primary 의 가장 새로운 oplog entry 의 30초내에 있어야 한다.
  • 만약 member 가 index들을 build 하면, sync source 는 index들을 build 해야만 한다.
  • 만약 member 가 replica set 선거에 투표하면(vote), sync source도 vote 를 해야만 한다.
  • 만약 member 가 delayed member 가 아니라면, sync source는 delayed 되지 않아야만 한다.
  • 만약 member가 deplayed member라면, sync source는 ‘좀 더 짧은 설정된 delay’(shorter configured delay) 를 가지고 있어야만 한다.
  • sync source는 현재 best synce source 보다 더 빨라야 한다.(더 낮은 latency 여야만 한다.)

2번째 Pass

member는 replication sync source를 정하기위한 2번째 pass를 할때, 다음 결정조건(criteria)를 각각의 replica set member 에게 적용한다.

  • sync source 는 replication state 가 PRIMARY 또는 SECONDARY 여야 한다.
  • sync source 는 online 이면서 reachable 이어야 한다.
  • 만약 member 가 index들을 build 하면, sync source 는 index들을 build 해야만 한다.
  • sync source는 현재 best synce source 보다 더 빨라야 한다.(더 낮은 latency 여야만 한다.)

maxNumSyncSourceChangesPerHour

이 값을 mongodb version 5.0 부터 사용가능. 기본값은 3이다.

동기화 소스들은(sync sources) sync source가 업데이트될 때마다 그리고 노드가 oplog entries의 batch를 fetch할때마다, 평가된다.(evaluated)

1시간동안의 source의 변경이 maxNumSyncSourceChangesPerHour 에 설정한 값보다 많은 경우, 노드가 해당 동기화 소스의 re-evaluating를 일시적으로 중지한다. 이 매개 변수를 높은 값으로 설정되면, 노드가 불필요한 소스 변경을 수행할 수 있다.

이 parameter는 노드에 sync source를 가지고 있지 않은 경우, 다른 노드를 이용해서 동기화를 시작하는 것을 막지는 않는다. 동기화 소스가 invalid 되면, 노드는 re-evaluate 한다. 비슷하게, primary 가 변경되고, chainning이 disabled 면, 노드는 new primary 로 부터 동기화하도록 update 된다.

References

  1. Replication Sync Source Selection | Replica Set Data Synchronization — MongoDB Manual

댓글 없음:

댓글 쓰기