#[repr(i32)]pub enum CompactionPri {
ByCompensatedSize = 0,
OldestLargestSeqFirst = 1,
OldestSmallestSeqFirst = 2,
MinOverlappingRatio = 3,
RoundRobin = 4,
}
Variants§
ByCompensatedSize = 0
Slightly prioritize larger files by size compensated by #deletes
OldestLargestSeqFirst = 1
First compact files whose data’s latest update time is oldest. Try this if you only update some hot keys in small ranges.
OldestSmallestSeqFirst = 2
First compact files whose range hasn’t been compacted to the next level for the longest. If your updates are random across the key space, write amplification is slightly better with this option.
MinOverlappingRatio = 3
First compact files whose ratio between overlapping size in next level and its size is the smallest. It in many cases can optimize write amplification.
RoundRobin = 4
Keeps a cursor(s) of the successor of the file (key range) was/were compacted before, and always picks the next files (key range) in that level. The file picking process will cycle through all the files in a round-robin manner.