Skip to content

Compaction Trivial Move

Jay Zhuang edited this page May 26, 2021 · 4 revisions

Trivial move is type of compaction that moves the SST file directly to the next level without changing the file. It happens when there's no overlap in the next level. For example, in the following graph, SST file 2 on Level 1 doesn't have any overlap files on Level 2, so when compacting file 2 to Level 2, there's no need to re-writing any file: SST file 1 on Level 1 cannot do trivial move, it has to be compacted with file 3 and 4 as there's overlap. RocksDB try to do the trivial move if possible to avoid unnecessary IO. On the other hand, it may cause small files are not compacting together, or compaction filter are not run for these files. As a workaround Manual Compaction can force the compaction by setting BottommostLevelCompaction::kForce, or setting a different bottommost compression, will also force the compaction on the bottommost level.

Contents

Clone this wiki locally