도구스개발

Raft 리더 선출 타임아웃 계산기

서버 수·타임아웃 구간·네트워크 왕복시간(RTT)을 넣으면 Raft 합의 알고리즘의 리더 선출이 한 번에 성공할 확률과 기대 라운드 수를 계산합니다.

ms
ms
ms

한 라운드에 성공할 확률

84.41%

설계 규칙(구간 ≥ RTT×10)을 만족합니다

타임아웃 구간 폭150ms
RTT ÷ 구간 폭0.0333
성공확률 = (1 − RTT/구간)ⁿ84.408%
기대 라운드 수1.185회
계산 근거P(성공) = (1 − 5/150)^5 = 84.408%n개의 무작위 타임아웃 중 가장 빠른 것과 두 번째로 빠른 것 사이의 간격이 RTT보다 커야 그 사이에 리더가 표를 다 모을 수 있습니다.
Raft 원 논문은 타임아웃 구간이 네트워크 왕복시간의 10배 이상이어야 한다는 설계 규칙을 제시합니다. 이 비율을 지키면 대부분의 클러스터 규모에서 선출이 한두 라운드 안에 안정적으로 끝납니다. 실제 네트워크는 RTT가 일정하지 않으므로 이 계산은 이상화된 모델임을 감안해야 합니다.

사용 방법

  1. 1클러스터의 서버(노드) 수를 입력합니다.
  2. 2선출 타임아웃 구간(하한·상한, ms)과 네트워크 왕복시간(RTT)을 입력합니다.
  3. 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일 · 결과는 참고용 추정치입니다.