From 599393dcbaf4b8fc13b7e8000c60d1a5e00a36cf Mon Sep 17 00:00:00 2001 From: Kamil Braun Date: Fri, 24 Mar 2023 11:21:54 +0100 Subject: [PATCH] storage_service: return unordered_set from get_ignore_dead_nodes_for_replace --- service/storage_service.cc | 8 ++++---- service/storage_service.hh | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/service/storage_service.cc b/service/storage_service.cc index 4ae26569ad..19f68cc97c 100644 --- a/service/storage_service.cc +++ b/service/storage_service.cc @@ -1332,9 +1332,9 @@ future<> storage_service::mark_existing_views_as_built(sharded storage_service::get_ignore_dead_nodes_for_replace(const token_metadata& tm) { +std::unordered_set storage_service::get_ignore_dead_nodes_for_replace(const token_metadata& tm) { std::vector ignore_nodes_strs; - std::list ignore_nodes; + std::unordered_set ignore_nodes; boost::split(ignore_nodes_strs, _db.local().get_config().ignore_dead_nodes_for_replace(), boost::is_any_of(",")); for (std::string n : ignore_nodes_strs) { try { @@ -1343,7 +1343,7 @@ std::list storage_service::get_ignore_dead_nodes_for_replace( boost::trim_all(n); if (!n.empty()) { auto ep_and_id = tm.parse_host_id_and_endpoint(n); - ignore_nodes.push_back(ep_and_id.endpoint); + ignore_nodes.insert(ep_and_id.endpoint); } } catch (...) { throw std::runtime_error(format("Failed to parse --ignore-dead-nodes-for-replace parameter: ignore_nodes={}, node={}: {}", ignore_nodes_strs, n, std::current_exception())); @@ -3103,7 +3103,7 @@ void storage_service::run_replace_ops(std::unordered_set& bootstrap_token const auto& uuid = ctl.uuid(); gms::inet_address replace_address = replace_info.address; auto tmptr = get_token_metadata_ptr(); - ctl.ignore_nodes = boost::copy_range>(get_ignore_dead_nodes_for_replace(*tmptr)); + ctl.ignore_nodes = get_ignore_dead_nodes_for_replace(*tmptr); // Step 1: Decide who needs to sync data for replace operation for (const auto& [node, eps] :_gossiper.get_endpoint_states()) { seastar::thread::maybe_yield(); diff --git a/service/storage_service.hh b/service/storage_service.hh index f190354dff..0915043d75 100644 --- a/service/storage_service.hh +++ b/service/storage_service.hh @@ -294,7 +294,7 @@ private: void run_replace_ops(std::unordered_set& bootstrap_tokens, replacement_info replace_info); void run_bootstrap_ops(std::unordered_set& bootstrap_tokens); - std::list get_ignore_dead_nodes_for_replace(const locator::token_metadata& tm); + std::unordered_set get_ignore_dead_nodes_for_replace(const locator::token_metadata& tm); future<> wait_for_ring_to_settle(std::chrono::milliseconds delay); public: