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?