Topic

RocksDB

JackerLab 2026. 1. 27. 19:53
728x90
반응형

개요

RocksDB는 Facebook에서 LevelDB를 기반으로 개발한 고성능 임베디드(embedded) 키-값(key-value) 저장 엔진입니다. 디스크 기반의 LSM(Log-Structured Merge) 트리 구조를 사용하여 높은 쓰기 성능과 낮은 지연(latency)을 보장하며, 대규모 스토리지 시스템과 성능 민감한 애플리케이션에 최적화되어 있습니다.


1. 개념 및 정의

항목 설명
정의 LSM 트리 기반의 고성능 키-값 저장 엔진
목적 쓰기 집약적인 워크로드의 저장 효율성 극대화
필요성 대용량 데이터를 빠르고 안정적으로 처리하는 엔진 필요

RocksDB는 로컬 스토리지에서 높은 IOPS를 제공하며 다양한 NoSQL 시스템의 백엔드로 채택되고 있습니다.


2. 특징

특징 설명 비교
LSM 기반 구조 쓰기 버퍼 → SST 파일로 병합 B-Tree 기반보다 쓰기 성능 우수
Column Family 지원 논리적 데이터 구분 가능 관계형 DB의 테이블과 유사
임베디드 사용 서버 없이 라이브러리 형태로 삽입 RocksDB vs Redis: 분산 여부 차이

특히 SSD에 최적화되어 있어 고성능 하드웨어에서 효율적


3. 구성 요소

구성 요소 설명 예시
MemTable 메모리상의 쓰기 버퍼 쓰기 시 우선 저장되는 영역
SSTable 디스크 상의 정렬된 불변 테이블 파일 Level 0~n 으로 계층화 저장
WAL (Write-Ahead Log) 장애 복구용 로그 MemTable flush 전 데이터 기록

쓰기: WAL → MemTable → Flush → SSTable 순으로 처리됨


4. 기술 요소

기술 설명 사용 예
Compaction SST 파일 병합 및 정리 디스크 공간 재사용 및 검색 성능 향상
Bloom Filter 키 존재 여부 빠르게 확인 false positive 기반 성능 최적화
Compression LZ4, ZSTD 등으로 저장 공간 절약 저장 효율 및 IO 최적화

RocksDB는 세밀한 튜닝이 가능한 옵션들을 풍부하게 제공함


5. 장점 및 이점

장점 설명 효과
고성능 쓰기 처리 LSM 구조 및 WAL 기반 빠른 쓰기 대규모 로그 처리에 적합
낮은 지연 시간 임베디드 구조로 IO latency 감소 실시간 애플리케이션 대응
유연한 구성 옵션 기반 최적화 가능 다양한 워크로드 대응 가능

페타바이트(PB) 규모의 데이터 처리에도 활용 가능


6. 주요 활용 사례 및 고려사항

사례 설명 참고사항
Meta(Facebook) 메시지 저장 및 피드 시스템에서 사용 복잡한 읽기/쓰기 병행 최적화
Apache Kafka Streams 상태 저장소로 사용 RocksDB + changelog 구조
TiKV (PingCAP) 분산 트랜잭션 Key-Value 저장소 분산 환경에서 높은 성능 유지

Compaction 설정, 파일 핸들 수 제한 등 성능 튜닝 필요


7. 결론

RocksDB는 고성능이 요구되는 시스템에서 필수적인 저장 엔진으로, 쓰기 집약형 워크로드와 대용량 데이터 환경에서 강력한 성능을 발휘합니다. 다양한 시스템에 임베딩할 수 있어 NoSQL, 스트리밍, 블록체인 등 폭넓은 분야에서 활용되고 있으며, 커스터마이징 가능한 아키텍처로 확장성과 효율성을 동시에 갖추고 있습니다.

728x90
반응형

'Topic' 카테고리의 다른 글

Protobuf(Protocol Buffers)  (0) 2026.01.28
Apache Avro  (0) 2026.01.28
CRUSH(Controlled Replication Under Scalable Hashing)  (0) 2026.01.27
EPaxos(Egalitarian Paxos)  (0) 2026.01.26
Tail-based Sampling  (0) 2026.01.26