Model
LSM compaction: leveled against tiered
The two policies trade a factor of T directly between write amplification and read amplification, and space follows read.
- Size ratio
- the size ratio between levels
- Data size
- the data size
- Buffer
- the in-memory buffer (memtable) size
- Levels
- the number of levels
- Amplification
- write, read and space amplification
How it behaves
One input on the horizontal axis, the others held fixed.
leveledtiered
Data table
| Size ratio T | series | Write amplification |
|---|---|---|
| 2 | leveled | 19.9× |
| 2.1 | leveled | 19.6× |
| 2.21 | leveled | 19.3× |
| 2.32 | leveled | 19× |
| 2.43 | leveled | 18.9× |
| 2.55 | leveled | 18.8× |
| 2.68 | leveled | 18.8× |
| 2.82 | leveled | 18.8× |
| 2.96 | leveled | 18.8× |
| 3.11 | leveled | 18.9× |
| 3.26 | leveled | 19.1× |
| 3.42 | leveled | 19.2× |
| 3.6 | leveled | 19.4× |
| 3.78 | leveled | 19.6× |
| 3.97 | leveled | 19.9× |
| 4.16 | leveled | 20.2× |
| 4.37 | leveled | 20.5× |
| 4.59 | leveled | 20.8× |
| 4.82 | leveled | 21.2× |
| 5.06 | leveled | 21.6× |
| 5.32 | leveled | 22× |
| 5.58 | leveled | 22.4× |
| 5.86 | leveled | 22.9× |
| 6.16 | leveled | 23.4× |
| 6.47 | leveled | 23.9× |
| 6.79 | leveled | 24.5× |
| 7.13 | leveled | 25.1× |
| 7.49 | leveled | 25.7× |
| 7.86 | leveled | 26.3× |
| 8.26 | leveled | 27× |
| 8.67 | leveled | 27.7× |
| 9.11 | leveled | 28.5× |
| 9.56 | leveled | 29.3× |
| 10 | leveled | 30.1× |
| 10.5 | leveled | 30.9× |
| 11.1 | leveled | 31.8× |
| 11.6 | leveled | 32.7× |
| 12.2 | leveled | 33.7× |
| 12.8 | leveled | 34.7× |
| 13.5 | leveled | 35.8× |
| 14.1 | leveled | 36.9× |
| 14.9 | leveled | 38× |
| 15.6 | leveled | 39.2× |
| 16.4 | leveled | 40.5× |
| 17.2 | leveled | 41.8× |
| 18.1 | leveled | 43.1× |
| 19 | leveled | 44.5× |
| 19.9 | leveled | 46× |
| 20.9 | leveled | 47.5× |
| 22 | leveled | 49.1× |
| 23.1 | leveled | 50.8× |
| 24.2 | leveled | 52.5× |
| 25.4 | leveled | 54.3× |
| 26.7 | leveled | 56.2× |
| 28 | leveled | 58.1× |
| 29.4 | leveled | 60.1× |
| 30.9 | leveled | 62.3× |
| 32.5 | leveled | 64.5× |
| 34.1 | leveled | 66.7× |
| 35.8 | leveled | 69.1× |
| 37.6 | leveled | 71.6× |
| 39.5 | leveled | 74.2× |
| 41.5 | leveled | 76.9× |
| 43.5 | leveled | 79.7× |
| 45.7 | leveled | 82.6× |
| 48 | leveled | 85.7× |
| 50.4 | leveled | 88.9× |
| 53 | leveled | 92.2× |
| 55.6 | leveled | 95.6× |
| 58.4 | leveled | 99.2× |
| 61.3 | leveled | 103× |
| 64.4 | leveled | 107× |
| 67.6 | leveled | 111× |
| 71 | leveled | 115× |
| 74.6 | leveled | 119× |
| 78.3 | leveled | 124× |
| 82.2 | leveled | 129× |
| 86.4 | leveled | 134× |
| 90.7 | leveled | 139× |
| 95.2 | leveled | 144× |
| 100 | leveled | 150× |
| 2 | tiered | 9.97× |
| 2.1 | tiered | 9.31× |
| 2.21 | tiered | 8.73× |
| 2.32 | tiered | 8.23× |
| 2.43 | tiered | 7.77× |
| 2.55 | tiered | 7.37× |
| 2.68 | tiered | 7× |
| 2.82 | tiered | 6.67× |
| 2.96 | tiered | 6.37× |
| 3.11 | tiered | 6.1× |
| 3.26 | tiered | 5.84× |
| 3.42 | tiered | 5.61× |
| 3.6 | tiered | 5.4× |
| 3.78 | tiered | 5.2× |
| 3.97 | tiered | 5.01× |
| 4.16 | tiered | 4.84× |
| 4.37 | tiered | 4.68× |
| 4.59 | tiered | 4.53× |
| 4.82 | tiered | 4.39× |
| 5.06 | tiered | 4.26× |
| 5.32 | tiered | 4.13× |
| 5.58 | tiered | 4.02× |
| 5.86 | tiered | 3.9× |
| 6.16 | tiered | 3.8× |
| 6.47 | tiered | 3.7× |
| 6.79 | tiered | 3.61× |
| 7.13 | tiered | 3.52× |
| 7.49 | tiered | 3.43× |
| 7.86 | tiered | 3.35× |
| 8.26 | tiered | 3.27× |
| 8.67 | tiered | 3.2× |
| 9.11 | tiered | 3.13× |
| 9.56 | tiered | 3.06× |
| 10 | tiered | 2.99× |
| 10.5 | tiered | 2.93× |
| 11.1 | tiered | 2.87× |
| 11.6 | tiered | 2.82× |
| 12.2 | tiered | 2.76× |
| 12.8 | tiered | 2.71× |
| 13.5 | tiered | 2.66× |
| 14.1 | tiered | 2.61× |
| 14.9 | tiered | 2.56× |
| 15.6 | tiered | 2.51× |
| 16.4 | tiered | 2.47× |
| 17.2 | tiered | 2.43× |
| 18.1 | tiered | 2.39× |
| 19 | tiered | 2.35× |
| 19.9 | tiered | 2.31× |
| 20.9 | tiered | 2.27× |
| 22 | tiered | 2.24× |
| 23.1 | tiered | 2.2× |
| 24.2 | tiered | 2.17× |
| 25.4 | tiered | 2.13× |
| 26.7 | tiered | 2.1× |
| 28 | tiered | 2.07× |
| 29.4 | tiered | 2.04× |
| 30.9 | tiered | 2.01× |
| 32.5 | tiered | 1.98× |
| 34.1 | tiered | 1.96× |
| 35.8 | tiered | 1.93× |
| 37.6 | tiered | 1.9× |
| 39.5 | tiered | 1.88× |
| 41.5 | tiered | 1.85× |
| 43.5 | tiered | 1.83× |
| 45.7 | tiered | 1.81× |
| 48 | tiered | 1.78× |
| 50.4 | tiered | 1.76× |
| 53 | tiered | 1.74× |
| 55.6 | tiered | 1.72× |
| 58.4 | tiered | 1.7× |
| 61.3 | tiered | 1.68× |
| 64.4 | tiered | 1.66× |
| 67.6 | tiered | 1.64× |
| 71 | tiered | 1.62× |
| 74.6 | tiered | 1.6× |
| 78.3 | tiered | 1.58× |
| 82.2 | tiered | 1.57× |
| 86.4 | tiered | 1.55× |
| 90.7 | tiered | 1.53× |
| 95.2 | tiered | 1.52× |
| 100 | tiered | 1.5× |
Worked examples, recomputed
Every number the mechanisms quote for this relationship is recomputed from it, so none of them disagrees with it.
Where it appears
Each mechanism states it in its own names. The general symbol each name stands for is shown with it.
- Core Data Structures
How do we choose a data structure when the real cost is set by the hardware, not by Big-O?
- Table & Storage Maintenance
Who pays for the gap between the order data arrives in and the order it is read in: the writer, every reader, or a background job, and what is the break-even?
g (growth factor) = · s_target / s_initial =