rocksdb icon indicating copy to clipboard operation
rocksdb copied to clipboard

Clarify manual compaction and file ingestion behavior with FIFO compaction

Open cbi42 opened this issue 1 year ago • 1 comments

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 avatar May 03 '24 23:05 cbi42

@cbi42 has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

facebook-github-bot avatar May 04 '24 00:05 facebook-github-bot

@cbi42 has updated the pull request. You must reimport the pull request before landing.

facebook-github-bot avatar May 07 '24 17:05 facebook-github-bot

@cbi42 has updated the pull request. You must reimport the pull request before landing.

facebook-github-bot avatar May 07 '24 17:05 facebook-github-bot

LGTM - with some minor notes

Thanks for the quick review.

cbi42 avatar May 07 '24 17:05 cbi42

@cbi42 has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

facebook-github-bot avatar May 07 '24 17:05 facebook-github-bot

@cbi42 merged this pull request in facebook/rocksdb@5bf2c00a35debbd59840814090ce4e3b7f007798.

facebook-github-bot avatar May 07 '24 19:05 facebook-github-bot