This is an automated email from the ASF dual-hosted git repository. dcapwell pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git
The following commit(s) were added to refs/heads/trunk by this push: new 1f06705153 When doing a host replacement, -Dcassandra.broadcast_interval_ms is used to know when to check the ring but checks that the ring wasn't changed in -Dcassandra.ring_delay_ms, changes to ring delay should not depend on when we publish load stats 1f06705153 is described below commit 1f067051537618804ca9d0c66b903be74b942b22 Author: David Capwell <dcapw...@apache.org> AuthorDate: Tue Jul 26 11:36:01 2022 -0700 When doing a host replacement, -Dcassandra.broadcast_interval_ms is used to know when to check the ring but checks that the ring wasn't changed in -Dcassandra.ring_delay_ms, changes to ring delay should not depend on when we publish load stats patch by David Capwell; reviewed by Brandon Williams, Caleb Rackliffe for CASSANDRA-17776 --- CHANGES.txt | 1 + src/java/org/apache/cassandra/service/StorageService.java | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index 63e8fdd328..554b6262ad 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.2 + * When doing a host replacement, -Dcassandra.broadcast_interval_ms is used to know when to check the ring but checks that the ring wasn't changed in -Dcassandra.ring_delay_ms, changes to ring delay should not depend on when we publish load stats (CASSANDRA-17776) * When bootstrap fails, CassandraRoleManager may attempt to do read queries that fail with "Cannot read from a bootstrapping node", and increments unavailables counters (CASSANDRA-17754) * Add guardrail to disallow DROP KEYSPACE commands (CASSANDRA-17767) * Remove ephemeral snapshot marker file and introduce a flag to SnapshotManifest (CASSANDRA-16911) diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 957daf395a..ee79b3398c 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -1776,11 +1776,18 @@ public class StorageService extends NotificationBroadcasterSupport implements IE { if (!isReplacingSameAddress()) { + // Historically BROADCAST_INTERVAL was used, but this is unrelated to ring_delay, so using it to know + // how long to sleep only works with the default settings (ring_delay=30s, broadcast=60s). For users + // who are aware of this relationship, this coupling should not be broken, but for most users this + // relationship isn't known and instead we should rely on the ring_delay. + // See CASSANDRA-17776 + long sleepDelayMillis = Math.max(LoadBroadcaster.BROADCAST_INTERVAL, ringTimeoutMillis * 2); try { // Sleep additionally to make sure that the server actually is not alive // and giving it more time to gossip if alive. - Thread.sleep(LoadBroadcaster.BROADCAST_INTERVAL); + logger.info("Sleeping for {}ms waiting to make sure no new gossip updates happen for {}", sleepDelayMillis, DatabaseDescriptor.getReplaceAddress()); + Thread.sleep(sleepDelayMillis); } catch (InterruptedException e) { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org