mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-26 11:30:36 +00:00
Compaction group can be defined as a set of files that can be compacted together. Today, all sstables belonging to a table in a given shard belong to the same group. So we can say there's one group per table per shard. As we want to eventually allow isolation of data that shouldn't be mixed, e.g. data from different vnodes, then we want to have more than one group per table per shard. That's why compaction groups is being introduced here. Today, all memtables and sstables are stored in a single structure per table. After compaction groups, there will be memtables and sstables for each group in the table. As we're taking an incremental approach, table still supports a single group. But work was done on preparing table for supporting multiple groups. Completing that work is actually the next step. Also, a procedure for deriving the group from token is introduced, but today it always return the single group owned by the table. Once multiple groups are supported, then that procedure should be implemented to map a token to a group. No semantics was changed by this series. Closes #11261 * github.com:scylladb/scylladb: replica: Move memtables to compaction_group replica: move compound SSTable set to compaction group replica: move maintenance SSTable set to compaction_group replica: move main SSTable set to compaction_group replica: Introduce compaction_group replica: convert table::stop() into coroutine compaction_manager: restore indentation compaction_manager: Make remove() and stop_ongoing_compactions() noexcept test: sstable_compaction_test: Don't reference main sstable set directly test: sstable_utils: Set data size fields for fake SSTable test: sstable_compaction_test: remove needless usage of column_family_test::add_sstable