클라우드플레어, 글로벌 합의 서비스 Meerkat 공개
전 세계 330개 이상 데이터센터에서 일관된 제어면 상태(Consistent Control Plane State)를 읽고 수정해야 하는 요구사항 발생
Raft와 같은 기존 합의 알고리즘은 리더 장애 시 가용성 문제(Availability Issues)를 겪어 새로운 솔루션 필요성 대두
EPFL 연구진의 QuePaxa 알고리즘 기반 새로운 분산 합의 서비스 Meerkat 개발 중
QuePaxa는 타임아웃 기반 리더 선출 방식 탈피하여 높은 가용성과 성능 보장
Meerkat의 핵심 요구사항: 선형성(Linearizability)과 내결함성(Fault Tolerance)
클라우드플레어는 전 세계 데이터센터 간 강력한 일관성(Strong Consistency), 특히 선형성(Linearizability)을 보장하는 데이터 시스템을 필요로 함.
선형성: 모든 읽기 작업이 이전 쓰기 작업을 정확히 반영하여 시간 순서대로 실행된 것처럼 동작하도록 보장
내결함성: 과반수 이상의 노드만 정상 작동하면 쓰기 및 읽기 가용성을 유지하며, 단일 노드 장애나 네트워크 문제에도 데이터 불일치(Data Inconsistency)를 방지함.
이는 기존 Raft 기반 시스템이 리더 장애 시 겪는 일시적 가용성 저하(Temporary Availability Degradation) 문제를 해결하기 위함임.
QuePaxa 알고리즘: Raft의 '타임아웃 폭정' 극복
Meerkat은 EPFL에서 개발한 QuePaxa 합의 알고리즘을 채택하여 Raft의 단점을 극복함.
리더 불필요(Leaderless): 특정 리더 노드에 의존하지 않아 리더 장애 시에도 시스템 중단 없이 쓰기 작업 지속 가능
타임아웃 의존성 제거: 네트워크 지연 변동성이 큰 환경에서 발생하는 리더 선출 경합(Leader Election Contention) 및 가용성 저하 문제를 원천적으로 방지
동시 제안(Concurrent Proposals) 협력 처리: 여러 노드에서 동시에 제안이 들어와도 파괴적 간섭 없이 하나의 값으로 합의하여 높은 처리량(Throughput)과 가용성(Availability) 확보.
이는 클라우드플레어의 광범위한 네트워크 환경에 최적화된 설계임.
Meerkat의 아키텍처: 합의 로그(Consensus Log) 중심 설계
Meerkat은 모든 복제본(Replica)이 동일한 합의 로그(Consensus Log)를 유지하도록 설계됨.
로그 이벤트(Log Events): 애플리케이션 요청(KV get/put 등)을 로그 이벤트로 변환하여 모든 복제본에 전파
상태 구성(State Construction): 각 복제본은 로그 이벤트를 순차적으로 적용하여 일관된 내부 상태(Consistent Internal State)를 구축함.
선형성 보장: 합의 알고리즘을 통해 로그 슬롯(Slot)의 값이 결정되면 모든 복제본이 동일한 값을 가지게 되어, 클라이언트 요청이 어느 복제본에 도달하든 항상 최신 데이터(Up-to-date Information)를 읽도록 보장함.
성능 최적화 방안 및 근본적 한계
Meerkat은 합의 알고리즘의 특성상 높은 통신 오버헤드(Communication Overhead)를 가짐.
라운드트립 비용(Round-trip Costs): 제안 결정에 최소 1~3회 이상의 네트워크 왕복 필요, 복제본 간 거리가 멀수록 지연 시간 증가
성능 개선 방안: 복제본 위치 조정, 쓰기 작업 배치(Batching), 일관되지 않은 데이터 읽기 허용(Allowing Stale Reads), 여러 연산을 단일 합의 라운드로 묶기(Bundling Operations).
단, 근본적인 지연 시간(Latency)의 한계로 인해 빈번한 쓰기 작업보다는 간헐적으로 쓰이는 제어면 정보 관리에 더 적합함.
향후 계획 및 연구 방향
Meerkat은 현재 실험적 단계(Experimental Stage)에 있으며 프로덕션 환경에 배포되지 않음.
성공적인 PoC(Proof-of-Concept) 수행: 최대 50개 복제본으로 글로벌 분산 환경에서 리더 장애 상황에도 오류율 증가 없이 정상 작동 확인
향후 연구 주제: QuePaxa 알고리즘 상세 설명, Rust 구현의 형식 검증(Formal Verification), 부트스트래핑 및 클러스터 관리, 최적 복제본 배치 탐색, 결정론적 시뮬레이션 테스트 등.
산업계 첫 QuePaxa 글로벌 규모 배포가 될 것으로 기대됨.