"As many people out there I like to adapt new technologies. There is one rule though, I need to understand what I’m actually using. It isn’t necessarily about exact implementation but main concepts behind it."
Benchmark Results of Samsung 960 Evo NVMe SSD
How can we transform random writes to sequential writes?
Used in a range of modern databases
SSTable: Sorted String Table
Writes are collected in memory
then sort and flush to disk
Compaction: sort and merge
Optimizing reads is easier than optimising writes
Name | Feature | Representative |
---|---|---|
Size-Tiered Compaction | Update Optimized | Cassandra |
Leveled Compaction | Lookup Optimized | RocksDB |
Size-ratio: Ratio between the capacities of different levels
LSM-tree with a really small size-ratio
LSM-tree with a really high size-ratio
Trade-off Curve
The state of the art on Trade-off Curve
Space Amplification and Write Amplification
Monkey: Optimal Navigable Key-Value Store
Monkey improves read performance (50-90% lookup cost in the worst-case) by optimal allocation of memory to the bloom filters
Dostoevsky: Space-Time Optimized Evolvable Scalable Key-Value Store
Lazy Leveling and Cost breakdown
Let us talk it in simple way
Fluid LSM-tree and its three parameters
If we set ...