diff --git a/db/view/view.cc b/db/view/view.cc index 243d8df8a5..6666afda32 100644 --- a/db/view/view.cc +++ b/db/view/view.cc @@ -1177,14 +1177,15 @@ static std::optional get_view_natural_endpoint(const sstring& keyspace_name, const dht::token& base_token, const dht::token& view_token) { auto &db = service::get_local_storage_proxy().local_db(); + auto& topology = service::get_local_storage_proxy().get_token_metadata_ptr()->get_topology(); auto& ks = db.find_keyspace(keyspace_name); auto erm = ks.get_effective_replication_map(); auto my_address = utils::fb_utilities::get_broadcast_address(); - auto my_datacenter = locator::i_endpoint_snitch::get_local_snitch_ptr()->get_datacenter(my_address); + auto my_datacenter = topology.get_datacenter(); bool network_topology = dynamic_cast(&ks.get_replication_strategy()); std::vector base_endpoints, view_endpoints; for (auto&& base_endpoint : erm->get_natural_endpoints(base_token)) { - if (!network_topology || locator::i_endpoint_snitch::get_local_snitch_ptr()->get_datacenter(base_endpoint) == my_datacenter) { + if (!network_topology || topology.get_datacenter(base_endpoint) == my_datacenter) { base_endpoints.push_back(base_endpoint); } } @@ -1202,7 +1203,7 @@ get_view_natural_endpoint(const sstring& keyspace_name, view_endpoint); if (it != base_endpoints.end()) { base_endpoints.erase(it); - } else if (!network_topology || locator::i_endpoint_snitch::get_local_snitch_ptr()->get_datacenter(view_endpoint) == my_datacenter) { + } else if (!network_topology || topology.get_datacenter(view_endpoint) == my_datacenter) { view_endpoints.push_back(view_endpoint); } }