menuTicketing
문서search

Raft 파라미터

항목
하트비트 간격250ms
선거 타임아웃500 ~ 1000ms — 리더 장애 시 이 시간 안에 새 리더 선출 시작
노드 수3 또는 5 (설정 로드 시 강제 — 그 외는 부팅 거부)
노드 IDcluster_peers 목록에서 자기(cluster_self) 위치 — 그래서 목록 순서가 모든 노드에서 동일해야 합니다
부트스트랩기동 500ms 뒤 모든 노드가 같은 멤버 구성으로 초기화 — 이미 초기화된 클러스터에 합류하면 무시됩니다
로그 저장인메모리(휘발) — 재시작 노드는 복제/스냅숏으로 복구
lease 만료 감지리더가 100ms 주기로 감지해 Expire를 합의로 커밋
wait 타임아웃 입자대기 타임아웃(T)도 같은 100ms 틱에서 판정 — 최대 100ms 늦게 도착할 수 있음

노드 수가 3 또는 5인 이유

커밋에는 과반이 필요합니다. 짝수 구성은 비용만 늘고 장애 허용은 늘지 않아 서버가 거부합니다.

노드 수과반동시 장애 허용
220대 — 1대만 죽어도 정지. 싱글보다 나을 게 없음
321대
431대 — 3대와 같음(비용만 증가)
532대

장애 시 동작 요약

상황동작
리더가 아닌 노드에 클라이언트 요청M(리더 주소), 리더를 모르면 E no_leader
리더 장애500~1000ms 내 새 리더 선출. 그동안 요청은 E no_leader → 클라이언트가 재시도
리더 교체 순간대기 중이던 획득 요청들은 M/E no_leader로 정리되고 클라이언트가 새 리더에 재시도
노드 재시작빈 상태로 부팅 → 피어의 로그 복제/스냅숏으로 따라잡음
과반 상실커밋 불가 → 쓰기 정지(안전 우선), 과반 복구 시 자동 재개

용어

  • 과반(quorum) — 전체 노드의 절반 초과(3대면 2대, 5대면 3대). 어떤 결정이든 과반이 동의해야 확정되므로, 통신이 끊겨 갈라진 두 그룹이 동시에 다른 결정을 내릴 수 없습니다.
  • 선거 타임아웃(election timeout) — 하트비트가 이 시간 동안 끊기면 팔로워가 리더가 죽었다고 보고 선거를 시작하는 대기 시간. 노드마다 무작위로 달라, 동시에 후보가 되는 것을 줄입니다.