목표
프로젝트에 RocksDB 스토리지를 구현하여 로그를 저장하는 엔진으로 RocksDB를 사용할 수 있도록 합니다.
작업
-
RocksDB 스토리지 구현:
- RocksDB를 사용하여 로그 데이터를 관리하고 저장하는 새로운 스토리지 모듈 또는 구조체를 정의합니다.
- 이 구조체는 기존 코드베이스와 원활하게 통합될 수 있도록
StableStorage
트레이트를 구현해야 합니다.
-
RocksDB 메서드 활용:
- RocksDB의 핵심 메서드(
put
, get
, delete
등)를 사용하여 로그 저장, 검색, 삭제 기능을 구현합니다.
- 구현은 대용량 데이터를 효율적으로 처리하면서 성능과 안정성을 유지해야 합니다.
-
기존 코드베이스와 통합:
- 새롭게 구현된 RocksDB 스토리지 구현이 기존의 스토리지 인터페이스와 호환되도록 하여 다른 스토리지 유형과 쉽게 교체할 수 있도록 합니다.
- 구성 또는 런타임 중에 다른 스토리지 백엔드를 선택할 수 있도록 코드베이스의 관련 부분을 수정합니다.
-
성능 벤치마킹:
- 구현 후, RocksDB 스토리지의 성능을 다른 스토리지 유형과 비교하여 그 효율성과 적합성을 평가합니다.
- 읽기/쓰기 속도, 메모리 사용량 등 관련 메트릭을 비교하여 다양한 시나리오에 대한 최적의 스토리지 옵션에 대한 인사이트를 제공합니다.
학습할 것들
-
RocksDB 기초:
- RocksDB의 공식 문서를 통해 RocksDB의 내부 구조와 동작 방식을 이해합니다.
- Column Families, Write-Ahead Logging(WAL), Compaction, Snapshots 등의 핵심 개념에 집중합니다.
-
Rust와의 RocksDB 통합:
- Rust RocksDB 라이브러리를 사용하여 Rust에서 RocksDB와 상호작용하는 방법을 배웁니다.
- Rust에서 RocksDB를 사용하여 데이터베이스를 생성, 읽기, 쓰기, 삭제하는 API를 숙달합니다.