피드로 돌아가기
Dev.toBackend
원문 읽기
Mneme Labs가 Rust로 분산 캐시를 자체 개발해 Redis의 복잡한 persistence·보안·HA 구조를 아키텍처 수준에서 통합
I built a Redis-alternative distributed cache in Rust — with WAL persistence, mTLS, and Raft consensus
AI 요약
Context
Redis는 25년간 축적된 복잡성을 가진 단일 프로세스 C 데몬이며, Persistence는 RDB 스냅샷 또는 AOF 로깅으로 추가 구현되고, TLS는 선택사항이고 클러스터 환경에서 복잡하게 구성되어야 하며, 고가용성을 위해서는 별도의 Sentinel 프로세스 집합이 필요합니다.
Technical Solution
- WAL + Keeper 노드 분리: Core 프로세스는 메모리만 관리하고, 모든 쓰기를 mTLS 스트림으로 Keeper 노드에 전달해 Keeper가 WAL 드레인·스냅샷 컴팩션·디스크 I/O를 독립적으로 담당
- Raft 합의 기반 고가용성: Sentinel 없이 3노드 클러스터에서 자동 리더 선출과 1초 미만의 페일오버 제공
- mTLS 기본값 적용: Core가 부팅 시 CA를 생성해 클러스터에 자동 공유하므로 Docker 배포에서 수동 인증서 관리 제거
- Read Replica를 통한 수평 확장: 최종 일관성 기반의 전용 포트에서 읽기 성능 확장
- Rust 기반 구현: 가비지 컬렉션 일시 정지 제거, 메모리 안전성 보장, Tokio를 통한 비동기 I/O 제공
Impact
아티클에 정량적 성능 수치가 명시되지 않았습니다.
Key Takeaway
분산 캐시 시스템에서 persistence·보안·고가용성을 사후 추가 기능이 아닌 아키텍처 수준의 기본값으로 설계하면, 운영 복잡도를 대폭 감소시키고 각 계층의 독립적 확장을 가능하게 합니다.
실천 포인트
Redis를 운영 중인 팀이 Persistence 지연이나 TLS 설정 복잡도·Sentinel 운영 부담을 경험하고 있다면, WAL 스트림 기반 분리 아키텍처(Core와 Keeper 분리)와 Raft 합의를 채택해 페일오버 자동화와 디스크 I/O 격리를 동시에 구현할 수 있습니다.