벤치마크

DBX와 다른 임베디드 데이터베이스 간의 성능 비교 벤치마크입니다.

목차

  1. 요약 (Executive Summary)
    1. 최신 벤치마크 결과 (v0.0.6-beta, 10,000개 레코드)
    2. 경쟁사 대비 성능 우위
  2. 테스트 환경
    1. 하드웨어 사양
    2. 소프트웨어 환경
  3. 테스트 대상 데이터베이스
  4. 벤치마크 방법론
    1. 측정 프레임워크
    2. 공정한 비교 조건
      1. DBX 설정
      2. 모든 데이터베이스 공통 설정
  5. 상세 벤치마크 결과
    1. INSERT 성능 (10,000개 레코드)
    2. GET 성능 (10,000개 레코드)
    3. SCAN 성능 (10,000개 레코드)
  6. 성능 최적화 기술
    1. Phase 1: GET 최적화 (+70% 개선)
    2. Phase 2: SCAN 최적화 (+57% 개선)
  7. 아키텍처 강점
    1. 5-Tier Hybrid Storage
  8. 벤치마크 재현 방법
  9. 결론
    1. 핵심 성과
    2. 기술적 차별점
  10. 다음 단계

요약 (Executive Summary)

DBX는 순수 Rust로 작성된 고성능 임베디드 데이터베이스 엔진입니다. v0.0.6-beta에서 모든 주요 작업(INSERT, GET, SCAN)에서 1위를 달성했습니다.

최신 벤치마크 결과 (v0.0.6-beta, 10,000개 레코드)

작업 DBX SQLite Sled Redb 순위
INSERT 44.92ms 🥇 53.06ms 60.56ms 54.05ms 1위
GET 2.84ms 🥇 37.39ms 5.88ms 3.25ms 1위
SCAN 1.60ms 🥇 2.98ms 4.64ms 2.15ms 1위

경쟁사 대비 성능 우위

vs SQLite:

  • INSERT: 18% 빠름
  • GET: 1,217% 빠름 (13배)
  • SCAN: 86% 빠름

vs Redb:

  • INSERT: 20% 빠름
  • GET: 14% 빠름
  • SCAN: 34% 빠름

vs Sled:

  • INSERT: 35% 빠름
  • GET: 107% 빠름 (2배)
  • SCAN: 190% 빠름 (2.9배)

버전: DBX v0.0.6-beta
테스트 날짜: 2026년 2월 16일
보고서 유형: 공식 성능 비교 분석


테스트 환경

하드웨어 사양

항목 사양
운영체제 Microsoft Windows 11 Pro (Build 26200)
시스템 유형 x64 기반 PC
프로세서 1 Processor (Multiprocessor Free)
메모리 16,273 MB (약 16GB)

소프트웨어 환경

컴포넌트 버전
Rust Compiler rustc 1.92.0 (ded5c06cf 2025-12-08)
Cargo 1.92.0 (344c4567c 2025-10-21)
빌드 프로필 release (최적화 활성화)
벤치마크 프레임워크 Criterion.rs v0.5

테스트 대상 데이터베이스

데이터베이스 버전 언어 특징
DBX 0.0.6-beta Pure Rust 5-Tier Hybrid Storage, MVCC
SQLite 0.32 (rusqlite) C (bundled) 업계 표준 임베디드 DB
Sled 0.34 Pure Rust Lock-free B+ tree
Redb 2.1 Pure Rust LMDB 영감, 파일 전용

벤치마크 방법론

측정 프레임워크

  • 도구: Criterion.rs v0.5 (Rust 표준 벤치마킹 라이브러리)
  • 샘플 수: 테스트당 100회 반복
  • 웜업 (Warmup): 각 테스트 전 3초간 실행
  • 통계 분석: 평균, 표준 편차, 95% 신뢰 구간
  • 이상치 감지: 자동 이상치 제거 및 보고

공정한 비교 조건

DBX 설정

// Default features 활성화
features = ["wal", "mvcc", "index"]

// 벤치마크용 durability 비활성화 (공정한 비교)
durability = DurabilityLevel::None

모든 데이터베이스 공통 설정

  1. 트랜잭션/배치 모드
    • 개별 INSERT 대신 배치 커밋을 사용한 공정한 비교
    • DBX: begin()insert() × N → commit()
    • SQLite: unchecked_transaction()execute() × N → commit()
    • Sled: insert() × N → flush()
    • Redb: begin_write()insert() × N → commit()
  2. WAL (Write-Ahead Logging) 비활성화
    • DBX: durability = DurabilityLevel::None
    • SQLite: PRAGMA synchronous = OFF
    • Sled: 기본 설정 (flush 기반)
    • Redb: 기본 설정 (트랜잭션 기반)
  3. 동일한 데이터 크기
    • Key: "key_{i}" 형식의 문자열
    • Value: "value_data_{i}" 형식의 문자열
    • 테스트 규모: 10,000개 레코드

상세 벤치마크 결과

INSERT 성능 (10,000개 레코드)

데이터베이스 평균 시간 표준 편차 처리량 (rec/sec) DBX 대비
DBX 44.92ms ±0.20ms 222,619 1.0× (기준)
SQLite 53.06ms ±0.38ms 188,465 0.85× (18% 느림)
Redb 54.05ms ±0.72ms 185,015 0.83× (20% 느림)
Sled 60.56ms ±1.55ms 165,123 0.74× (35% 느림)

DBX 우위:

  • 모든 경쟁사보다 빠름
  • ✅ SQLite 대비 18% 빠름
  • ✅ 안정적인 성능 (낮은 표준 편차)

GET 성능 (10,000개 레코드)

데이터베이스 평균 시간 표준 편차 처리량 (rec/sec) DBX 대비
DBX 2.84ms ±0.01ms 3,521,127 1.0× (기준)
Redb 3.25ms ±0.17ms 3,076,923 0.87× (14% 느림)
Sled 5.88ms ±0.03ms 1,700,680 0.48× (107% 느림)
SQLite 37.39ms ±0.48ms 267,452 0.08× (1,217% 느림)

DBX 우위:

  • SQLite 대비 13배 빠름
  • ✅ Redb 대비 14% 빠름
  • ✅ Sled 대비 2배 빠름

SCAN 성능 (10,000개 레코드)

데이터베이스 평균 시간 표준 편차 처리량 (rec/sec) DBX 대비
DBX 1.60ms ±0.07ms 6,250,000 1.0× (기준)
Redb 2.15ms ±0.02ms 4,651,163 0.74× (34% 느림)
SQLite 2.98ms ±0.16ms 3,355,705 0.54× (86% 느림)
Sled 4.64ms ±0.10ms 2,155,172 0.34× (190% 느림)

DBX 우위:

  • 모든 경쟁사보다 빠름
  • ✅ Redb 대비 34% 빠름
  • ✅ SQLite 대비 86% 빠름

성능 최적화 기술

Phase 1: GET 최적화 (+70% 개선)

  1. Inline 속성 추가
    • #[inline(always)] 속성으로 함수 호출 오버헤드 제거
    • 컴파일러 최적화 향상
  2. MVCC 오버헤드 제거
    • Hot path에서 MVCC 체크 제거
    • 불필요한 타임스탬프 획득 비용 절감
  3. 코드 경로 단순화
    • 조건문 제거로 분기 예측 개선
    • CPU 파이프라인 효율 향상

결과: 9.63ms → 2.84ms (3.4배 빠름)

Phase 2: SCAN 최적화 (+57% 개선)

  1. Delta Store Fast-path
    • Delta가 비어있을 때 조기 반환
    • 불필요한 스캔 작업 제거
  2. 2-way Merge 최적화
    • Delta가 비어있으면 WOS 직접 스캔
    • Merge 오버헤드 완전 제거
  3. 캐시 지역성 개선
    • 단일 스캔으로 메모리 접근 패턴 최적화
    • CPU 캐시 효율 향상

결과: 3.70ms → 1.60ms (2.3배 빠름)


아키텍처 강점

5-Tier Hybrid Storage

  1. Delta Store (Tier 1)
    • DashMap + SkipMap (Lock-free)
    • 초고속 INSERT 성능
  2. WOS (Tier 2)
    • BTreeMap (정렬된 저장소)
    • 효율적인 범위 스캔
  3. 최적화된 데이터 흐름
    • Delta → WOS 자동 flush
    • 메모리와 디스크의 효율적 활용

벤치마크 재현 방법

# 프로젝트 클론
git clone https://github.com/ByteLogicCore/DBX.git
cd DBX

# 전체 비교 벤치마크 실행
cargo bench --bench official_db_comparison

# 개별 데이터베이스 벤치마크
cargo bench --bench official_db_comparison -- dbx_
cargo bench --bench official_db_comparison -- sqlite_
cargo bench --bench official_db_comparison -- sled_
cargo bench --bench official_db_comparison -- redb_

결론

DBX v0.0.6-beta는 모든 주요 작업(INSERT, GET, SCAN)에서 1위를 달성했습니다.

핵심 성과

  • INSERT 1위: 44.92ms (경쟁사 대비 18-35% 빠름)
  • GET 1위: 2.84ms (SQLite 대비 13배 빠름)
  • SCAN 1위: 1.60ms (경쟁사 대비 34-190% 빠름)

기술적 차별점

  1. 5-Tier Hybrid Storage: 메모리와 디스크의 효율적 활용
  2. Lock-Free 아키텍처: DashMap + SkipMap
  3. Pure Rust: 메모리 안전성과 제로 비용 추상화
  4. 최적화된 알고리즘: Fast-path 및 inline 최적화

DBX는 고성능 쓰기 작업과 균형 잡힌 읽기 성능이 필요한 애플리케이션에 최적의 선택입니다.


다음 단계


Copyright © 2026 ByteLogicCore. MIT OR Apache-2.0 License.

This site uses Just the Docs, a documentation theme for Jekyll.