Clarify manual compaction and file ingestion behavior with FIFO compaction
Summary: For manual compaction, FIFO compaction will always skip key range overlapping checking with SST files. If CompactRange() is called with CompactionRangeOptions::change_level=true, a CF with FIFO compaction will now return Status::NotSupported.
For file ingestion, we will always ingest into L0. Previously, it's possible to ingest files into non-L0 levels with FIFO compaction.
These changes also help to fix this assertion failure in crash tests.
Test plan: added unit tests to verify the new behavior.
@cbi42 has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.
@cbi42 has updated the pull request. You must reimport the pull request before landing.
@cbi42 has updated the pull request. You must reimport the pull request before landing.
LGTM - with some minor notes
Thanks for the quick review.
@cbi42 has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.
@cbi42 merged this pull request in facebook/rocksdb@5bf2c00a35debbd59840814090ce4e3b7f007798.