Raft 리더 선출 타임아웃 계산기
서버 수·타임아웃 구간·네트워크 왕복시간(RTT)을 넣으면 Raft 합의 알고리즘의 리더 선출이 한 번에 성공할 확률과 기대 라운드 수를 계산합니다.
한 라운드에 성공할 확률
84.41%
설계 규칙(구간 ≥ RTT×10)을 만족합니다
사용 방법
- 1클러스터의 서버(노드) 수를 입력합니다.
- 2선출 타임아웃 구간(하한·상한, ms)과 네트워크 왕복시간(RTT)을 입력합니다.
- 3한 라운드에 리더 선출이 성공할 확률과 기대 라운드 수를 확인합니다.
자주 묻는 질문
모든 서버가 같은 타임아웃을 쓰면 하트비트가 끊겼을 때 전부 동시에 후보가 되어 표가 갈립니다(분할투표). 서버마다 무작위 구간(예: 150~300ms)에서 타임아웃을 뽑으면 대부분 한 서버만 먼저 깨어나 선거를 독점하게 됩니다.
P(성공) = (1 − RTT/구간폭)ⁿ입니다(n=서버 수). n개의 무작위 타임아웃 중 가장 빠른 것과 두 번째로 빠른 것 사이의 간격이 네트워크 왕복시간(RTT)보다 커야 그 사이에 리더가 표를 다 모을 수 있기 때문입니다. 5노드·RTT가 구간의 10분의 1일 때 0.9⁵≈59%가 나오는데, 이는 여러 자료가 언급하는 수치와 일치합니다.
Raft 원 논문이 제시하는 설계 규칙입니다. 이 비율을 지키면 대부분의 클러스터 규모에서 선출이 한두 라운드 안에 안정적으로 끝납니다. 이 계산기는 입력한 값이 이 규칙을 만족하는지도 함께 알려줍니다.
선출이 성공할 때까지 평균적으로 몇 번의 시도(라운드)가 필요한지를 나타냅니다. 성공확률의 역수(1/P)로 계산하며, 확률이 낮을수록(설계 규칙을 어길수록) 더 많은 라운드가 필요합니다.
전송되지 않습니다. 계산은 모두 브라우저 안에서 이루어지고 넣은 값은 이 기기에만 남습니다.
알아두면 좋은 점
- 무작위 타임아웃 메커니즘과 "구간 ≥ RTT×10" 설계 규칙은 Ongaro & Ousterhout, "In Search of an Understandable Consensus Algorithm"(raft.github.io/raft.pdf, 2014)을 정본으로 삼았습니다.
- P(성공)=(1−RTT/W)ⁿ 공식은 균등분포 표본의 간격(spacing)이 베타분포를 따른다는 표준 확률론 결과로 직접 유도했습니다. n=5·RTT/W=0.1일 때 나오는 값(약 59%, 기대 1.7라운드)이 여러 2차 자료가 언급하는 수치와 일치함을 확인했고, 몬테카를로 시뮬레이션으로 여러 조합에서 이 공식이 실제 무작위 시행 결과와 일치하는지 테스트로 고정했습니다(2026-09-05).
- 이 확률은 "타임아웃이 정확히 균등분포에서 독립적으로 뽑힌다"는 이상화된 모델을 가정합니다. 실제 네트워크는 RTT가 일정하지 않고 패킷 손실도 있어 실제 선출 성공률과는 차이가 날 수 있습니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 5일 · 결과는 참고용 추정치입니다.