피드로 돌아가기
Why I'm Building a Database From Scratch in Raw C++ (And Why I Banned the STL)
Dev.toDev.to
Database

STL 배제를 통한 메모리 및 디스크 I/O 레벨의 DB 스토리지 엔진 바닥부터 설계

Why I'm Building a Database From Scratch in Raw C++ (And Why I Banned the STL)

Hari56162026년 5월 2일2advanced

Context

추상화 라이브러리와 API 사용으로 인한 메모리 및 하드웨어 동작 원리에 대한 이해도 저하 발생. 시스템 내부 메커니즘을 블랙박스로 처리하는 기존 학습 방식의 한계 극복 필요.

Technical Solution

  • Dynamic Memory Allocation 원리 습득을 위한 STL 전면 배제 및 Raw C++ 기반 구현
  • Page Manager 설계를 통한 Raw Disk I/O 직접 제어 체계 구축
  • LRU Eviction 알고리즘 기반의 Buffer Pool 매커니즘 구현
  • B+ Tree Index 및 Heap File Tuple Layout 설계를 통한 데이터 저장 구조 최적화
  • Write Ahead Log(WAL) 도입을 통한 데이터 무결성 및 복구 메커니즘 확보
  • 2PL(Two-Phase Locking) 적용으로 동시성 제어 및 트랜잭션 격리 수준 구현

1. 고성능 시스템 설계 전 메모리 레이아웃 및 디스크 I/O 병목 지점 분석 수행

2. 추상화 계층이 숨기고 있는 성능 비용(Performance Overhead) 측정 및 검증

3. Buffer Pool 및 Index 구조 설계를 통한 데이터 접근 경로 최적화 검토

원문 읽기