Aether 내부: 형식 검증된 고성능 스토리지 엔진 (Rust)

데이터베이스 스토리지 엔진 개발은 시스템 프로그래밍에서 가장 도전적인 과제 중 하나로 여겨집니다. 이는 순수 성능, 엄격한 ACID 준수, 그리고 재앙적인 충돌 시 데이터가 절대 손실되지 않을 것이라는 절대적인 보장을 미묘하게 균형 맞춰야 합니다. 여기 Aether가 등장합니다. Rust로 작성된 고성능 스토리지 엔진으로, 여러 최첨단 학술 및 산업 개념을 하나의 일관된 프레임워크로 통합하려고 시도합니다.

TLA+를 통한 형식 검증과 swizzled 포인터, Taurus WAL 알고리즘 같은 고성능 원시 기능을 결합함으로써, Aether는 Redis와 호환되는 캐시부터 특수 금융 거래 데이터베이스에 이르기까지 모든 것을 위한 기반을 제공하고자 합니다. 이 글에서는 Aether의 아키텍처, 성능 특성, 그리고 기술적 철학을 살펴봅니다.

아키텍처 스택

Aether는 계층형 시스템으로 설계되어, 고수준 API 호출이 페이지 수준 디스크 I/O로 효율적으로 변환되도록 합니다. 아키텍처는 엄격한 계층 구조를 따릅니다:

  1. API Layer: 애플리케이션 상호작용을 위한 KvStoreDbEnv 인터페이스를 제공합니다.
  2. Index Layer: B+ 트리, Skiplists, RAX radix 트리를 포함한 다양한 인덱싱 전략을 지원합니다.
  3. LSM Framework: 선택적 계층으로, 특히 순수 HanoiDB 구현을 통한 플러그 가능한 컴팩션 전략을 제공합니다.
  4. Transactions & Recovery: 원자성 및 내구성을 보장하기 위해 ARIES 복구 프로토콜을 구현합니다.
  5. WAL (Write-Ahead Logging): lock‑free, per‑thread 로깅을 위해 Taurus 알고리즘을 사용합니다.
  6. Buffer Manager: 오버헤드를 최소화하기 위해 swizzled 포인터를 활용하는 LeanStore 영감의 매니저입니다.
  7. Page Layer: 4KB 페이지에 데이터의 물리적 레이아웃을 관리합니다.

핵심 기술 혁신

LeanStore 영감의 버퍼 관리

Aether는 LeanStore 논문을 기반으로 한 버퍼 매니저를 구현합니다. 이 매니저는 가상 페이지 ID를 물리 메모리 주소에 매핑하는 오버헤드를 줄이는 데 중점을 둡니다. swizzled 포인터를 사용함으로써 Aether는 페이지를 HOT, COOL, EVICTED 상태 사이에서 전환할 수 있습니다. 이는 페이지 접근의 "핫 경로"를 약 24ns(초당 약 4100만 연산)까지 빠르게 만들어, 자주 접근되는 데이터에 대한 비용이 많이 드는 해시 테이블 조회를 우회합니다.

TLA+를 활용한 형식 검증

많은 스토리지 엔진이 방대한 테스트에만 의존하는 것과 달리, Aether는 TLA+ (Temporal Logic of Actions) 를 사용해 핵심 로직을 형식 검증합니다. 검증 대상은 구체적으로 다음과 같습니다:

  • LSN (Log Sequence Number) 고유성: 로그 손상을 방지하기 위해 단조성 및 고유성을 보장합니다.
  • 충돌 복구: 충돌 시 데이터가 손실되지 않으며 ARIES redo/undo 단계가 논리적으로 올바른지 검증합니다.
  • 동시성 안전성: 고도로 동시적인 접근 패턴에서도 시스템이 일관성을 유지함을 증명합니다.

HanoiDB LSM 구현

쓰기 집중 워크로드를 위해 Aether는 LSM 트리 프레임워크를 제공합니다. HanoiDB 구현은 특히 2.0배의 일정한 쓰기 증폭을 주장하는 점에서 주목할 만합니다. 컴팩션 작업을 쓰기와 함께 분산(증분 병합)함으로써, Aether는 p99 지연 시간을 1‑2µs 범위로 매우 안정적으로 유지하며, 전통적인 LSM 컴팩션에서 흔히 발생하는 대규모 지연 스파이크를 효과적으로 제거합니다.

성능 벤치마크

Aether의 설계 선택은 다양한 구성 요소에서 상당한 성능 향상으로 이어집니다:

  • WAL 처리량: lock‑free per‑thread 스트림과 그룹 커밋을 사용해 WAL이 스레드 수에 따라 선형적으로 확장되어, 고동시성 환경에 최적화됩니다.
  • LSM 지연 시간: 프로젝트는 p999 지연 시간이 4‑22µs라고 보고합니다. 이는 "stop‑the‑world" 컴팩션 이벤트에 시달리는 전통적인 LSM 구현보다 수십 배 뛰어난 수치입니다.
  • 복구: ARIES 기반 복구는 로그 크기에 따라 선형적으로 확장되어, 장애 발생 후 예측 가능한 부팅 시간을 보장합니다.

커뮤니티 반응 및 비판적 시각

기술적 야망에도 불구하고, Aether는 현대 소프트웨어 개발의 본질과 "검증" 정의에 대한 논쟁을 불러일으켰습니다.

일부 비평가들은 모델에 대한 형식 검증만으로는 구현이 그 모델을 엄격히 정제하지 않을 경우 충분하지 않다고 주장합니다. 사용자 @Kab1r이 언급했듯이:

"모델이 올바르다는 것을 형식 검증하는 것만으로는 이제 충분하지 않다고 생각합니다. 구현이 모델을 정제한다는 것을 증명해야 합니다."

다른 이들은 코드의 출처를 의심하며, 복잡도와 개발 속도가 LLM에 크게 의존했을 가능성을 제기합니다. 일부는 이를 도메인 전문가에게 "100배 곱셈기"로 보지만, 미션 크리티컬 데이터 스토리지를 논할 때 "바이브 코딩"된 소프트웨어에 회의적이며, SQLite나 PostgreSQL 같은 검증된 대안을 선호합니다.

결론

Aether는 학술적 엄격함(TLA+)과 고성능 연구(LeanStore, HanoiDB)를 실용적인 Rust 구현에 결합하려는 대담한 시도입니다. 학습 프로젝트이든 프로덕션 준비 엔진이든, 현대적인 ACID‑준수 스토리지 시스템을 처음부터 구축하는 방법에 대한 정교한 사례 연구로서 가치를 지닙니다.

SUMMARY: LeanStore 영감을 받은 버퍼 관리, ARIES 복구, 그리고 TLA+ 형식 검증을 결합한 Rust 기반 스토리지 엔진 Aether DB에 대한 탐구.

TITLE: Aether 내부: 형식 검증된 고성능 스토리지 엔진 (Rust)

Sources