Skip to the content.

Understanding LSM Trees, B+ Trees & Hybrid Indexing Models

1. LSM Trees (Log-Structured Merge Trees) vs. B+ Trees (Balanced Tree Indexing)

B+ Trees-Based Databases (e.g., MySQL/InnoDB, PostgreSQL, TimescaleDB)

βœ… Efficient Reads for Older Data

❌ Low Write Throughput

πŸ”₯ Ideal Use Case:


LSM Trees-Based Databases (e.g., Cassandra, RocksDB, Apache Druid)

βœ… Optimized for Writes

❌ Read Latency Increases for Older Data

πŸ”₯ Ideal Use Case:


2. Hybrid Indexing Models (Combining LSM & B+ Trees)

A. LSM-B+ Hybrid (MongoDB’s WiredTiger, MyRocks)

Example Databases:

B. Fractal Trees (TokuDB, Percona FT)

Example Databases:

C. Bw-Trees (Hekaton in SQL Server, FAWN)

Example Databases:


3. Which Indexing Model is Best for Mixed Read & Write Workloads?

Indexing Model Write Performance Read Performance Best Used In
B+ Tree ❌ Slow (random writes) βœ… Fast (O(log N), great for range queries) OLTP Databases (MySQL, PostgreSQL)
LSM Tree βœ… Fast (sequential writes) ❌ Slower for historical reads Write-heavy workloads (Cassandra, RocksDB)
Fractal Tree βœ…βœ… Very Fast (buffered writes) βœ… Fast (optimized range queries) Analytical & mixed workloads (TokuDB)
Bw-Tree βœ… Fast (lock-free writes) βœ…βœ… Very Fast (copy-on-write reads) High concurrency OLTP (SQL Server Hekaton)
Hybrid (LSM + B+ Tree) βœ… Fast (batched writes) βœ… Fast (optimized index lookups) MongoDB (WiredTiger), MyRocks

4. Conclusion


This document serves as a long-term reference for database indexing models. πŸš€