-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
compaction_manager: run_offstrategy_compaction: retrieve owned_ranges from compaction_state #15043
compaction_manager: run_offstrategy_compaction: retrieve owned_ranges from compaction_state #15043
Conversation
Please elaborate, why must it piggyback cleanup on reshape? |
… from compaction_state perform_offstrategy is called from try_perform_cleanup when there are sstables in the maintenance set that require cleanup. The input sstables are inserted into the compaction_state `sstables_requiring_cleanup` and `try_perform_cleanup` expects offstrategy compaction to clean them up along with reshape compaction. Otherwise, the maintenance sstables that require cleanup are not cleaned up by cleanup compaction, since the reshape output sstable(s) are not analyzed again after reshape compaction, where that would insert the output sstable(s) into `sstables_requiring_cleanup` and trigger their cleanup in the subsequent cleanup compaction. The latter method is viable too, but it is less effficient since we can do reshape+cleanup in one pass, vs. reshape first and cleanup later. Fixes scylladb#15041 Signed-off-by: Benny Halevy <bhalevy@scylladb.com>
81dd87b
to
f9935e7
Compare
Elaborated patch change log, and respective PR description. |
Please update the issue too. An issue must describe something that is wrong to deserve being fixed. "Should" just moves the responsibility to figuring out what's wrong to the reader. |
Done |
CI state |
How did you get CI to succeed? |
Spells and sorcery |
A witch! |
… from compaction_state perform_offstrategy is called from try_perform_cleanup when there are sstables in the maintenance set that require cleanup. The input sstables are inserted into the compaction_state `sstables_requiring_cleanup` and `try_perform_cleanup` expects offstrategy compaction to clean them up along with reshape compaction. Otherwise, the maintenance sstables that require cleanup are not cleaned up by cleanup compaction, since the reshape output sstable(s) are not analyzed again after reshape compaction, where that would insert the output sstable(s) into `sstables_requiring_cleanup` and trigger their cleanup in the subsequent cleanup compaction. The latter method is viable too, but it is less effficient since we can do reshape+cleanup in one pass, vs. reshape first and cleanup later. Fixes scylladb#15041 Signed-off-by: Benny Halevy <bhalevy@scylladb.com> Closes scylladb#15043
… from compaction_state perform_offstrategy is called from try_perform_cleanup when there are sstables in the maintenance set that require cleanup. The input sstables are inserted into the compaction_state `sstables_requiring_cleanup` and `try_perform_cleanup` expects offstrategy compaction to clean them up along with reshape compaction. Otherwise, the maintenance sstables that require cleanup are not cleaned up by cleanup compaction, since the reshape output sstable(s) are not analyzed again after reshape compaction, where that would insert the output sstable(s) into `sstables_requiring_cleanup` and trigger their cleanup in the subsequent cleanup compaction. The latter method is viable too, but it is less effficient since we can do reshape+cleanup in one pass, vs. reshape first and cleanup later. \Fixes scylladb#15041 Signed-off-by: Benny Halevy <bhalevy@scylladb.com> \Closes scylladb#15043 (cherry picked from commit 9f77a32)
… from compaction_state perform_offstrategy is called from try_perform_cleanup when there are sstables in the maintenance set that require cleanup. The input sstables are inserted into the compaction_state `sstables_requiring_cleanup` and `try_perform_cleanup` expects offstrategy compaction to clean them up along with reshape compaction. Otherwise, the maintenance sstables that require cleanup are not cleaned up by cleanup compaction, since the reshape output sstable(s) are not analyzed again after reshape compaction, where that would insert the output sstable(s) into `sstables_requiring_cleanup` and trigger their cleanup in the subsequent cleanup compaction. The latter method is viable too, but it is less effficient since we can do reshape+cleanup in one pass, vs. reshape first and cleanup later. \Fixes scylladb#15041 Signed-off-by: Benny Halevy <bhalevy@scylladb.com> \Closes scylladb#15043 (cherry picked from commit 9f77a32)
… from compaction_state perform_offstrategy is called from try_perform_cleanup when there are sstables in the maintenance set that require cleanup. The input sstables are inserted into the compaction_state `sstables_requiring_cleanup` and `try_perform_cleanup` expects offstrategy compaction to clean them up along with reshape compaction. Otherwise, the maintenance sstables that require cleanup are not cleaned up by cleanup compaction, since the reshape output sstable(s) are not analyzed again after reshape compaction, where that would insert the output sstable(s) into `sstables_requiring_cleanup` and trigger their cleanup in the subsequent cleanup compaction. The latter method is viable too, but it is less effficient since we can do reshape+cleanup in one pass, vs. reshape first and cleanup later. \Fixes scylladb#15041 Signed-off-by: Benny Halevy <bhalevy@scylladb.com> \Closes scylladb#15043 (cherry picked from commit 9f77a32)
perform_offstrategy is called from try_perform_cleanup
when there are sstables in the maintenance set that require
cleanup.
The input sstables are inserted into the compaction_state
sstables_requiring_cleanup
andtry_perform_cleanup
expects offstrategy compaction to clean them up along
with reshape compaction.
Otherwise, the maintenance sstables that require cleanup
are not cleaned up by cleanup compaction, since
the reshape output sstable(s) are not analyzed again
after reshape compaction, where that would insert
the output sstable(s) into
sstables_requiring_cleanup
and trigger their cleanup in the subsequent cleanup compaction.
The latter method is viable too, but it is less effficient
since we can do reshape+cleanup in one pass, vs.
reshape first and cleanup later.
Fixes #15041