피드로 돌아가기
The Disk-Level Architecture of OLTP vs. OLAP
Dev.toDev.to
Database

B+ Tree 기반 OLTP와 LSM-Tree 기반 OLAP의 디스크 I/O 구조 최적화 분석

The Disk-Level Architecture of OLTP vs. OLAP

Samarth Gambhir2026년 6월 14일5advanced

Context

행 기반 B+ Tree 구조의 OLTP 시스템에서 대규모 집계 쿼리 수행 시 발생하는 Random I/O 및 Working Set 축출 문제 분석. 쓰기 최적화 구조와 읽기 최적화 구조의 물리적 설계 충돌로 인한 애플리케이션 성능 저하 현상 식별.

Technical Solution

  • Point-lookup 최적화를 위한 B+ Tree 기반 O(log n) 물리적 리프 노드 직접 접근 설계
  • ACID 내구성 보장을 위해 Buffer Pool의 Dirty Page를 디스크에 덮어쓰기 전 WAL(Write-Ahead Logging)에 순차 기록하는 메커니즘 채택
  • Random I/O 제거를 위해 In-place Update를 폐기하고 LSM-Tree 기반의 Layered Append-only 구조 도입
  • 쓰기 성능 극대화를 위해 모든 업데이트를 최상위 Layer 0에 새로운 파일로 추가하는 Sequential Append 방식 적용
  • Merge-on-Read 전략을 통해 최신 레이어부터 역순으로 읽어 중복 레코드를 동적으로 마스킹하는 읽기 경로 설계
  • 백그라운드 Compaction 프로세스를 통한 파편화된 파일 통합 및 오래된 데이터의 물리적 제거로 읽기 성능 유지

- 서비스 요구사항이 단순 CRUD에서 복잡한 집계 분석으로 확장되는 시점에 데이터 저장소 분리 검토 - 업데이트 빈도가 높고 스캔 범위가 넓은 데이터셋의 경우 LSM-Tree 기반 저장소 채택 고려 - OLTP와 OLAP 간 데이터 동기화 시 애플리케이션 레벨의 이중 쓰기 대신 WAL 기반 CDC(Change Data Capture) 도입 검토

원문 읽기