19. 분산 합의(Consensus): Raft·Paxos 기초와 게임 서버 메타데이터 관리

난이도 상 해설 보기 →
문제

문제 19 — 분산 합의(Consensus): Raft·Paxos 기초와 게임 서버 메타데이터 관리

여러 대의 코디네이터/메타데이터 서버가 "누가 어느 존을 소유하는가", "매치메이킹 큐 리더는 누구인가", "설정/구성의 현재 버전은 무엇인가" 같은 단일 진실 원천(single source of truth) 을 장애가 나도 일관되게 유지해야 한다. 다음을 설명하라.

  1. 합의 문제가 왜 필요한가: 그냥 DB 한 대나 리더 한 대를 두면 안 되는 이유(SPOF), 그리고 "리더를 여러 대가 동시에 자기라고 믿는" split-brain이 왜 위험한지 게임 서버 예로 설명하라.

  2. 복제 상태 머신(replicated state machine): 합의 로그(log)에 명령을 순서대로 복제하고 각 노드가 같은 순서로 적용하면 왜 모든 노드가 같은 상태에 수렴하는지 설명하라.

  3. Raft의 동작: 리더 선출(term, 랜덤 선거 타임아웃, 투표), 로그 복제(AppendEntries, 과반수 커밋), 안전성(로그 최신성 비교로 오래된 후보의 당선 방지)을 개괄하라. 왜 과반수(quorum, N/2+1) 가 핵심이며, 5노드 클러스터가 몇 대의 장애까지 견디는가?

  4. Paxos와의 관계: Basic Paxos / Multi-Paxos 가 무엇이고, Raft가 "이해 가능성(understandability)"을 목표로 무엇을 단순화했는지(강한 리더, 로그 연속성) 간단히 비교하라.

  5. CAP·성능·실무: 합의는 CAP에서 어느 쪽(CP)에 서며 파티션 시 무엇을 포기하는가? 합의는 비싸므로(과반수 왕복) 무엇을 합의로 관리하고 무엇을 관리하면 안 되는지 게임 서버 관점에서 권고하라(메타데이터·리더십·구성 vs 초당 수만 건의 플레이어 상태). etcd/ZooKeeper 같은 도구를 어떻게 활용하는가?

답안 작성
내 답안 · 자동 저장

직접 답을 작성한 뒤, 위 해설 보기에서 모범답안과 대조하세요.