피드로 돌아가기
[🗄️DataBase] Database Transactions 底層到底做了什麼:從記憶體到磁碟
Dev.toDev.to
Database

[🗄️DataBase] Database Transactions 底層到底做了什麼:從記憶體到磁碟

RAM-Disk 간 1,000배 속도 차이를 극복하는 WAL 기반 ACID 보장 아키텍처

Mercy2026년 6월 13일6intermediate

Context

디스크 I/O의 물리적 한계로 인해 RAM 대비 최소 1,000배에서 최대 100,000배의 성능 격차가 발생함. 이를 해결하며 데이터의 영속성과 원자성을 보장해야 하는 Database Engine의 구조적 모순을 해결하는 것이 핵심 과제임.

Technical Solution

  • Page Cache 도입을 통해 디스크 직접 접근을 최소화하고 RAM 내에서 데이터 수정 후 Dirty Page로 관리하는 구조 설계
  • Sequential Write 방식의 WAL(Write-Ahead Log)을 적용하여 Random Write의 성능 저하를 회피하고 Commit 시점의 영속성 확보
  • Background Writer를 통한 비동기식 Dirty Page 플러싱으로 사용자 쿼리 응답 시간과 디스크 쓰기 부하를 분리
  • Checkpoint 메커니즘을 도입하여 WAL 로그의 무한 팽창을 방지하고 장애 복구 시 Replay 범위를 최적화
  • ARIES 알고리즘 기반의 Analysis-Redo-Undo 프로세스를 통해 Crash 발생 시 데이터 일관성을 자동 복구하는 파이프라인 구축

- Application의 Flush와 DB의 Commit 차이를 이해하고 비즈니스 원자성 범위 설정 - 대량의 데이터 업데이트 시 Checkpoint 부하 및 WAL 로그 생성량 모니터링 - 장애 복구 시간(RTO) 단축을 위한 적절한 Checkpoint 주기 설정 검토 - Disk I/O 병목 해결을 위해 Sequential Write 구조의 로그 시스템 도입 고려

원문 읽기