Skip to content
About
Main content
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

Trade-off: Read-optimized vs. write-optimized

How it behaves

One input on the horizontal axis, the others held fixed.

leveledtiered
Data table
Write amplification by size ratio (N/M = 1,000)
Size ratio TseriesWrite amplification
2leveled19.9×
2.1leveled19.6×
2.21leveled19.3×
2.32leveled19×
2.43leveled18.9×
2.55leveled18.8×
2.68leveled18.8×
2.82leveled18.8×
2.96leveled18.8×
3.11leveled18.9×
3.26leveled19.1×
3.42leveled19.2×
3.6leveled19.4×
3.78leveled19.6×
3.97leveled19.9×
4.16leveled20.2×
4.37leveled20.5×
4.59leveled20.8×
4.82leveled21.2×
5.06leveled21.6×
5.32leveled22×
5.58leveled22.4×
5.86leveled22.9×
6.16leveled23.4×
6.47leveled23.9×
6.79leveled24.5×
7.13leveled25.1×
7.49leveled25.7×
7.86leveled26.3×
8.26leveled27×
8.67leveled27.7×
9.11leveled28.5×
9.56leveled29.3×
10leveled30.1×
10.5leveled30.9×
11.1leveled31.8×
11.6leveled32.7×
12.2leveled33.7×
12.8leveled34.7×
13.5leveled35.8×
14.1leveled36.9×
14.9leveled38×
15.6leveled39.2×
16.4leveled40.5×
17.2leveled41.8×
18.1leveled43.1×
19leveled44.5×
19.9leveled46×
20.9leveled47.5×
22leveled49.1×
23.1leveled50.8×
24.2leveled52.5×
25.4leveled54.3×
26.7leveled56.2×
28leveled58.1×
29.4leveled60.1×
30.9leveled62.3×
32.5leveled64.5×
34.1leveled66.7×
35.8leveled69.1×
37.6leveled71.6×
39.5leveled74.2×
41.5leveled76.9×
43.5leveled79.7×
45.7leveled82.6×
48leveled85.7×
50.4leveled88.9×
53leveled92.2×
55.6leveled95.6×
58.4leveled99.2×
61.3leveled103×
64.4leveled107×
67.6leveled111×
71leveled115×
74.6leveled119×
78.3leveled124×
82.2leveled129×
86.4leveled134×
90.7leveled139×
95.2leveled144×
100leveled150×
2tiered9.97×
2.1tiered9.31×
2.21tiered8.73×
2.32tiered8.23×
2.43tiered7.77×
2.55tiered7.37×
2.68tiered7×
2.82tiered6.67×
2.96tiered6.37×
3.11tiered6.1×
3.26tiered5.84×
3.42tiered5.61×
3.6tiered5.4×
3.78tiered5.2×
3.97tiered5.01×
4.16tiered4.84×
4.37tiered4.68×
4.59tiered4.53×
4.82tiered4.39×
5.06tiered4.26×
5.32tiered4.13×
5.58tiered4.02×
5.86tiered3.9×
6.16tiered3.8×
6.47tiered3.7×
6.79tiered3.61×
7.13tiered3.52×
7.49tiered3.43×
7.86tiered3.35×
8.26tiered3.27×
8.67tiered3.2×
9.11tiered3.13×
9.56tiered3.06×
10tiered2.99×
10.5tiered2.93×
11.1tiered2.87×
11.6tiered2.82×
12.2tiered2.76×
12.8tiered2.71×
13.5tiered2.66×
14.1tiered2.61×
14.9tiered2.56×
15.6tiered2.51×
16.4tiered2.47×
17.2tiered2.43×
18.1tiered2.39×
19tiered2.35×
19.9tiered2.31×
20.9tiered2.27×
22tiered2.24×
23.1tiered2.2×
24.2tiered2.17×
25.4tiered2.13×
26.7tiered2.1×
28tiered2.07×
29.4tiered2.04×
30.9tiered2.01×
32.5tiered1.98×
34.1tiered1.96×
35.8tiered1.93×
37.6tiered1.9×
39.5tiered1.88×
41.5tiered1.85×
43.5tiered1.83×
45.7tiered1.81×
48tiered1.78×
50.4tiered1.76×
53tiered1.74×
55.6tiered1.72×
58.4tiered1.7×
61.3tiered1.68×
64.4tiered1.66×
67.6tiered1.64×
71tiered1.62×
74.6tiered1.6×
78.3tiered1.58×
82.2tiered1.57×
86.4tiered1.55×
90.7tiered1.53×
95.2tiered1.52×
100tiered1.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?

    Read it in place →

  • 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 =

    Read it in place →