피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Strong Consistency 보장을 위한 Raft 기반 분산 합의 알고리즘 설계
The Raft Consensus Algorithm: Leader Election and Log Replication Explained
AI 요약
Context
분산 시스템 내 노드 장애 상황에서도 복제본 간 동기화를 유지해야 하는 과제 직면. 복잡성으로 인해 구현 난도가 높았던 Paxos의 한계를 극복하고 가독성과 구현 가능성을 높인 합의 프로토콜 필요성 대두.
Technical Solution
- Follower, Candidate, Leader의 Finite State Machine 기반 역할 분리를 통한 쓰기 권한 단일화
- Heartbeat 중단 시 Term 증가 및 RequestVote RPC 브로드캐스트를 통한 Leader Election 수행
- 최신 Log Entry를 보유한 노드만 투표권을 획득하게 제한하여 Election Safety 확보
- AppendEntries RPC를 활용한 과반수(Majority) 복제 확인 후 Commit Index를 업데이트하는 Log Replication 구조 설계
- Commit된 엔트리의 덮어쓰기를 금지하는 불변성 원칙을 통한 데이터 Durability 및 전역 일관성 유지
실천 포인트
- 분산 환경에서 Single Source of Truth 확보를 위한 Quorum 기반 합의 메커니즘 검토 - State Machine 전이 조건의 명확한 정의를 통한 분산 노드 간 상태 일관성 검증 - Network Partition 상황에서의 데이터 정합성 우선순위 설정을 통한 Split-brain 방지 전략 수립 - Log 크기 증가에 따른 성능 저하 해결을 위해 Snapshot Compression 도입 검토