November 2026
LSM trees win on write throughput because everything becomes a sequential append. The cost is deferred: compaction has to be paid later, and read amplification grows with the number of levels.
B-trees pay upfront. Writes are in place, which means random IO, but the read path stays shallow and predictable. For read-heavy workloads with moderate write rates it is still hard to beat.
The interesting space is in between. WiscKey and its descendants separate keys from values so compaction moves only the parts that must stay sorted. That trades a second lookup for a large reduction in write amplification.