Skip to main content

Storage Engine Decision Matrix

Systems Design Framework

Every storage engine embodies trade-offs dictated by the RUM Conjecture: an engine can optimize for at most two of Read amplification, Update (write) amplification, or Memory/space amplification.

🧭Storage Engine Architecture Decision Matrix
Interactive Tool

Storage engines make fundamental trade-offs governed by the RUM Conjecture (Read, Update, Memory/Space). Select your workload profile to explore the optimal storage structure:

Log-Structured Merge Tree (LSM)

Append-Only Multi-Level Sorted String Tables (SSTables)
Optimal Fit

Writes are written sequentially to a Write-Ahead Log (WAL) and memory table (MemTable), then flushed to disk as immutable SSTables. Compaction merges runs in the background. Exceptional write throughput.

DimensionCharacteristics & Trade-offImpact
Read AmplificationMedium (Bloom-filtered)Read Path
Write AmplificationLow (Sequential Append)NAND Wear / Throughput
Space AmplificationLow (Compacted)Disk Footprint
Notable Production Systems:
RocksDBApache CassandraLevelDBCockroachDB (Pebble)ScyllaDB

Architectural Comparison Table

ArchitecturePrimary Data StructureBest Suited ForWrite AmplificationRead AmplificationProduction Systems
B+ TreeBalanced N-ary Tree (4KB - 16KB pages)Point lookups, ACID OLTP, low read latencyHigh (10×30×10\times - 30\times)Low (O(logBN)O(\log_B N))PostgreSQL, SQLite, MySQL InnoDB
LSM TreeMemTable + Multi-Level SSTables + Bloom FiltersWrite-heavy ingestion, high-throughput time-seriesLow to Medium (2×10×2\times - 10\times)Medium (O(LlogN)O(L \cdot \log N))RocksDB, LevelDB, Cassandra, Pebble
ColumnarColumn chunks, dictionary encoding, vector buffersAnalytical OLAP aggregations, range scansBatched / MergeTreeMinimal for queried columnsClickHouse, DuckDB, Parquet, Snowflake
Segmented LogAppend-only sequential files + index offsetsStreaming event journals, ordered messagingLowest (1×1\times)Low for sequential consumptionApache Kafka, Apache Pulsar, Redpanda
In-MemorySkipList, Adaptive Radix Tree (ART), Hash TableSub-millisecond latency, fast cache, session stores00 (RAM), batched AOF/RDBO(1)O(logN)O(1) - O(\log N) (RAM speeds)Redis, Memcached, Dragonfly