mirror of
https://github.com/scylladb/scylladb.git
synced 2026-06-02 04:56:58 +00:00
The `topology_coordinator` is a large class (>1000 loc) which resides in an even larger source file (storage_service.cc, ~7800 loc). This PR moves the topology_coordinator class out of the storage_service.cc file in order to improve modularity and recompilation times during development. As a first step, the `topology_mutation_builder` and `topology_node_mutation_builder` classes are also moved from storage_service.cc to their own, new header/source files as they are an important abstraction used both by the topology coordinator code and some other code in storage_service.cc that won't be moved. Then, the `topology_coordinator` is moved out. The `topology_coordinator` class is completely hidden in the new topology_coordinator.cc file and can only be started and waited on to finish via the new `run_topology_coordinator` function. Fixes: scylladb/scylladb#16605 Closes scylladb/scylladb#16609 * github.com:scylladb/scylladb: service: move topology coordinator to a separate file storage_service: introduce run_topology_coordinator function service: move topology mutation builder out of storage_service storage_service: detemplate topology_node_mutation_builder::set