데이터베이스를 "SQL 쓰는 곳"으로만 쓰면 평생 주니어다. B-Tree·LSM-Tree·Hash Index의 내부 구조, 쿼리 플래너가 쿼리를 어떻게 실행으로 바꾸는지, 트랜잭션 격리 수준 4단계, 샤딩·파티셔닝 전략, PostgreSQL의 2025년 독주 현상, 그리고 Vector DB(pgvector·Qdrant·Weaviate)까지 — DB의 내부를 회로도 수준으로 뜯는 한 편. Season 2의 열세 번째.
왜 PostgreSQL과 RocksDB는 다른 자료구조를 택했나. WAL이 없는 DB가 없는 이유. MVCC의 xmin/xmax, Vacuum이 느려지는 진짜 원인, BRIN/GIN/GiST/HNSW 인덱스, Query Planner가 같은 쿼리를 달리 실행하는 논리, Replication의 논리 vs 물리. '왜 DB는 느려지는가'에 대한 완전한 답.
CockroachDB, TiKV, MyRocks, Kafka Streams, Flink 상태 백엔드. 이 모두가 RocksDB를 내장합니다. 이 글은 RocksDB와 LSM-Tree의 내부를 처음부터 해부합니다. Memtable과 SST 파일 구조, Write Path와 Read Path, Compaction 전략(Leveled/Tiered/Universal), Bloom Filter와 Block Cache, Write/Read/Space Amplification의 트레이드오프, BlobDB와 Integrated BlobDB, Partitioned Index, Column Family, 그리고 실무 튜닝 가이드까지 — 현대 Write-Heavy 스토리지 엔진을 제대로 이해하고 싶은 엔지니어를 위한 종합 가이드입니다.
DB 내부 구조의 모든 것! 스토리지 엔진(InnoDB/RocksDB/WiredTiger), B-Tree vs LSM-Tree, Buffer Pool, WAL(Write-Ahead Log), MVCC(다중 버전 동시성 제어), 쿼리 옵티마이저, 트랜잭션 격리 수준, 락(Lock) 메커니즘.