최근 개발자 단테굿맨1(danthegoodman1)이 커서(Cursor)의 '대규모 깃(Git at any scale)' 블로그 게시물에서 영감을 받아 새로운 분산 쓰기 선행 로그(WAL) 시스템인 '월티어(WalTier)'를 공개했습니다. 월티어는 S3의 조건부 쓰기(conditional writes) 기능을 활용하여 메모리, 로컬 디스크, S3를 계층적으로 사용하는 임베더블(embeddable) WAL로, 복잡한 합의(consensus) 알고리즘 없이도 강력한 데이터 일관성과 읽기 전용 복제본(read-only replicas)을 제공합니다.
월티어의 핵심은 모든 로그를 하나의 S3 객체(WAL 이미지)로 관리하며, 모든 쓰기 작업 시 이 객체를 통째로 덮어쓰는 방식입니다. 이때 S3의 ETag 체인(etag chain)을 이용한 비교-교환(compare-and-swap, CAS) 연산을 통해 동시성 제어와 충돌 해결을 수행합니다. 만약 다른 인스턴스가 먼저 썼다면 PUT 작업이 실패하고, 월티어는 누락된 항목을 가져와 상태를 갱신한 후 사용자 정의된 '조정(reconcile)' 로직에 따라 재시도, 교체 또는 중단을 결정합니다. 또한, 사용자가 정의한 조건에 따라 백그라운드 스레드에서 스냅샷(snapshot)을 생성하고 S3에 업로드하여 로그를 압축(compaction)하며, 읽기 전용 복제본은 S3에서 최신 상태를 효율적으로 동기화합니다.
이러한 월티어의 접근 방식은 분산 시스템에서 데이터 일관성을 유지하기 위해 필요한 복잡한 합의 프로토콜(예: 팍소스, 라프트) 없이도 S3의 강력한 일관성 모델을 활용하여 안정적인 WAL을 구현했다는 점에서 의미가 큽니다. 특히 대규모 분산 환경에서 데이터베이스나 분산 캐시 등 다양한 애플리케이션의 핵심 구성 요소로 활용될 수 있습니다. 복잡한 인프라 관리 없이도 높은 내구성과 가용성을 제공하며, 개발자는 핵심 비즈니스 로직에 집중할 수 있게 됩니다. 이는 클라우드 기반 서비스의 개발 효율성을 높이고, 데이터 손실 위험을 줄이는 데 기여할 것으로 기대됩니다.