token_metadata: calculate_pending_ranges_for_leaving: maybe yield
We see long stalls as reported in https://github.com/scylladb/scylla/issues/8030#issuecomment-974783526 everywhere_replication_strategy::calculate_natural_endpoints is synchronous and doesn't yield, so add maybe_yield() calls when looping over many token ranges. Refs #8030 Signed-off-by: Benny Halevy <bhalevy@scylladb.com> Message-Id: <20211121090339.3955278-1-bhalevy@scylladb.com> Message-Id: <20211121102606.76700-1-bhalevy@scylladb.com>
This commit is contained in:
@@ -824,6 +824,7 @@ void token_metadata_impl::calculate_pending_ranges_for_leaving(
|
||||
for (auto& ep : diff) {
|
||||
new_pending_ranges.emplace(r, ep);
|
||||
}
|
||||
seastar::thread::maybe_yield();
|
||||
}
|
||||
metadata.clear_gently().get();
|
||||
tlogger.debug("In calculate_pending_ranges: affected_ranges.size={} ends", affected_ranges_size);
|
||||
|
||||
Reference in New Issue
Block a user