From 8989021dc302bf424b820ab05e8b7fe83307ecdf Mon Sep 17 00:00:00 2001 From: Pavel Emelyanov Date: Wed, 7 Oct 2020 21:37:42 +0300 Subject: [PATCH] system distributed keyspace: Start sharded service erarlier The constructors just set up the references, real start happens in .start() so it is safe to do this early. This helps not carrying migration manager and query processor down the storage service cluster joining code. Signed-off-by: Pavel Emelyanov --- main.cc | 2 ++ service/storage_service.cc | 1 - test/lib/cql_test_env.cc | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/main.cc b/main.cc index 3dbc018ba7..85816061b3 100644 --- a/main.cc +++ b/main.cc @@ -1071,6 +1071,8 @@ int main(int ac, char** av) { gms::stop_gossiping().get(); }); + sys_dist_ks.start(std::ref(qp), std::ref(mm)).get(); + ss.init_server().get(); sst_format_selector.sync(); ss.join_cluster().get(); diff --git a/service/storage_service.cc b/service/storage_service.cc index 950c475783..f2a7f57e22 100644 --- a/service/storage_service.cc +++ b/service/storage_service.cc @@ -391,7 +391,6 @@ void storage_service::prepare_to_join( void storage_service::maybe_start_sys_dist_ks() { supervisor::notify("starting system distributed keyspace"); - _sys_dist_ks.start(std::ref(cql3::get_query_processor()), std::ref(service::get_migration_manager())).get(); _sys_dist_ks.invoke_on_all(&db::system_distributed_keyspace::start).get(); } diff --git a/test/lib/cql_test_env.cc b/test/lib/cql_test_env.cc index f6b8fce2c6..3a0a797df7 100644 --- a/test/lib/cql_test_env.cc +++ b/test/lib/cql_test_env.cc @@ -561,6 +561,8 @@ public: db::system_keyspace::init_local_cache().get(); auto stop_local_cache = defer([] { db::system_keyspace::deinit_local_cache().get(); }); + sys_dist_ks.start(std::ref(qp), std::ref(mm)).get(); + service::get_local_storage_service().init_server(service::bind_messaging_port(false)).get(); service::get_local_storage_service().join_cluster().get();