mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-24 18:40:38 +00:00
" Scylla suffers with aggressive compaction after repair-based operation has initiated. That translates into bad latency and slowness for the operation itself. This aggressiveness comes from the fact that: 1) new sstables are immediately added to the compaction backlog, so reducing bandwidth available for the operation. 2) new sstables are in bad shape when integrated into the main sstable set, not conforming to the strategy invariant. To solve this problem, new sstables will be incrementally reshaped, off the compaction strategy, until finally integrated into the main set. The solution takes advantage there's only one sstable per vnode range, meaning sstables generated by repair-based operations are disjoint. NOTE: off-strategy for repair-based decommission and removenode will follow this series and require little work as the infrastructure is introduced in this series. Refs #5226. " * 'offstrategy_v7' of github.com:raphaelsc/scylla: tests: Add unit test for off-strategy sstable compaction table: Wire up off-strategy compaction on repair-based bootstrap and replace table: extend add_sstable_and_update_cache() for off-strategy sstables/compaction_manager: Add function to submit off-strategy work table: Introduce off-strategy compaction on maintenance sstable set table: change build_new_sstable_list() to accept other sstable sets table: change non_staging_sstables() to filter out off-strategy sstables table: Introduce maintenance sstable set table: Wire compound sstable set table: prepare make_reader_excluding_sstables() to work with compound sstable set table: prepare discard_sstables() to work with compound sstable set table: extract add_sstable() common code into a function sstable_set: Introduce compound sstable set reshape: STCS: preserve token contiguity when reshaping disjoint sstables