rocksdb::CompactRangeOptions.change_level is not compatible with level_compaction_dynamic_level_bytes

90 views
Skip to first unread message

Yutian Li

unread,
Oct 14, 2024, 11:15:36 PM10/14/24
to rocksdb
Hi all,

I found that `rocksdb::CompactRangeOptions.change_level` is not compatible with `level_compaction_dynamic_level_bytes` and lol I spent so much time debugging this issue. The problem is that `level_compaction_dynamic_level_bytes` tries to use the last layer as possible, leaving intermediate layers empty. And if I also set `change_level` in my manual compaction, it'll move the result SST file back to L1!

I ran into this in Kvrocks https://github.com/apache/kvrocks/issues/2601 but I think the interaction applies in general if I were to use RocksDB directly. My repro was basically setting 1 kv pair and then calling manual compaction.

Do we think it's worth adding a safety check in RocksDB so people aren't using these 2 options together?
Reply all
Reply to author
Forward
0 new messages