From 7862d4bebc0279bcd636dc0b19096fa547b8e1fc Mon Sep 17 00:00:00 2001 From: Vadim Plakhtinskiy Date: Fri, 24 Jun 2022 12:17:31 +0200 Subject: [PATCH] cluster: move feature_table outside controller --- src/v/cluster/controller.cc | 4 ++-- src/v/cluster/controller.h | 3 ++- src/v/redpanda/application.cc | 5 +++++ src/v/redpanda/application.h | 1 + 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/v/cluster/controller.cc b/src/v/cluster/controller.cc index 47836f3f798d..d58ade7843e2 100644 --- a/src/v/cluster/controller.cc +++ b/src/v/cluster/controller.cc @@ -58,6 +58,7 @@ controller::controller( ss::sharded& storage_node, ss::sharded& raft_manager, ss::sharded& data_policy_table, + ss::sharded& feature_table, ss::sharded& cloud_storage_api) : _config_preload(std::move(config_preload)) , _connections(ccache) @@ -69,12 +70,12 @@ controller::controller( , _security_manager(_credentials, _authorizer) , _data_policy_manager(data_policy_table) , _raft_manager(raft_manager) + , _feature_table(feature_table) , _cloud_storage_api(cloud_storage_api) {} ss::future<> controller::wire_up() { return _as.start() .then([this] { return _members_table.start(); }) - .then([this] { return _feature_table.start(); }) .then([this] { return _partition_allocator.start_single( std::ref(_members_table), @@ -374,7 +375,6 @@ ss::future<> controller::stop() { .then([this] { return _drain_manager.stop(); }) .then([this] { return _partition_allocator.stop(); }) .then([this] { return _partition_leaders.stop(); }) - .then([this] { return _feature_table.stop(); }) .then([this] { return _members_table.stop(); }) .then([this] { return _as.stop(); }); }); diff --git a/src/v/cluster/controller.h b/src/v/cluster/controller.h index 1e7019103e0e..6ae1e0ad33f7 100644 --- a/src/v/cluster/controller.h +++ b/src/v/cluster/controller.h @@ -38,6 +38,7 @@ class controller { ss::sharded& storage_node, ss::sharded&, ss::sharded&, + ss::sharded&, ss::sharded&); model::node_id self() { return _raft0->self().id(); } @@ -152,7 +153,7 @@ class controller { ss::sharded _metrics_reporter; ss::sharded _feature_manager; // single instance ss::sharded _feature_backend; // instance per core - ss::sharded _feature_table; // instance per core + ss::sharded& _feature_table; // instance per core std::unique_ptr _leader_balancer; consensus_ptr _raft0; ss::sharded& _cloud_storage_api; diff --git a/src/v/redpanda/application.cc b/src/v/redpanda/application.cc index 026650fbb2c6..6f5cfb7919e4 100644 --- a/src/v/redpanda/application.cc +++ b/src/v/redpanda/application.cc @@ -708,6 +708,9 @@ void application::wire_up_redpanda_services() { cloud_configs.stop().get(); } + syschecks::systemd_message("Creating feature table").get(); + construct_service(_feature_table).get(); + syschecks::systemd_message("Adding partition manager").get(); construct_service( partition_manager, @@ -738,6 +741,7 @@ void application::wire_up_redpanda_services() { storage_node, std::ref(raft_group_manager), data_policies, + std::ref(_feature_table), std::ref(cloud_storage_api)); controller->wire_up().get0(); @@ -847,6 +851,7 @@ void application::wire_up_redpanda_services() { make_upload_controller_config(_scheduling_groups.archival_upload())) .get(); } + // group membership syschecks::systemd_message("Creating partition manager").get(); construct_service( diff --git a/src/v/redpanda/application.h b/src/v/redpanda/application.h index fea2fba2dc47..8d84cefcb72b 100644 --- a/src/v/redpanda/application.h +++ b/src/v/redpanda/application.h @@ -157,6 +157,7 @@ class application { ss::logger _log; ss::sharded _connection_cache; + ss::sharded _feature_table; ss::sharded _group_manager; ss::sharded _co_group_manager; ss::sharded _rpc;