AutoMQ: Shared Storage Architecture Deep Dive
Author: Anton Borisov | Source: Medium (Fresha Data Engineering) | Published: 2026-02-18
한 줄 요약
AutoMQ는 Kafka의 로컬 디스크 복제를 S3 기반 공유 스토리지로 대체하여 무상태 브로커, 제로카피 페일오버, 컴퓨트-스토리지 독립 스케일링을 실현하는 Kafka 호환 스트리밍 플랫폼이다.
핵심 주장/내용
- 3계층 아키텍처: ElasticLog(논리적 로그 추상화) → S3Stream(WAL, 업로드, 캐싱 관리) → Metadata Control Plane(KRaft 기반 파티션-스트림 매핑)
- WAL 배칭 정책: 250ms 또는 8MB 임계값 중 먼저 도달하는 쪽으로 플러시하여 레이턴시와 처리량 균형
- 제로카피 페일오버: 브로커 장애 시 데이터 복사 없이 메타데이터(epoch) 변경만으로 복구 — epoch fencing으로 split-brain 방지
- Stream Set Object(쓰기 최적화, 멀티 스트림)에서 Dedicated Object(읽기 최적화, 단일 스트림)로의 백그라운드 컴팩션
- 백프레셔 세마포어로 프로듀서가 S3 업로드 속도를 초과하지 않도록 흐름 제어
주요 수치 / 사실
- Kafka 대비 복제 스토리지 3x 제거 (비용 효율)
- WAL 플러시 간격: 250ms (최소 쓰기 레이턴시 하한)
- 블록 캐시 기본 크기: 200MB
- S3 의존성으로 인한 트레이드오프: 약간 높은 쓰기 레이턴시, 캐시 미스 시 테일 레이턴시 증가, S3 요청 비용
관련 위키
Source: 원문 보기