start hint replay as soon as FD notifies that the target is back up patch by jbellis; reviewed by brandonwillams for CASSANDRA-3958
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a043998c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a043998c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a043998c Branch: refs/heads/cassandra-1.1 Commit: a043998c98cdbcafad248311b11295b7675911a7 Parents: 85934a1 Author: Jonathan Ellis <jbel...@apache.org> Authored: Mon Feb 27 13:42:09 2012 -0600 Committer: Jonathan Ellis <jbel...@apache.org> Committed: Mon Feb 27 13:42:09 2012 -0600 ---------------------------------------------------------------------- CHANGES.txt | 2 ++ .../apache/cassandra/db/HintedHandOffManager.java | 12 +----------- 2 files changed, 3 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a043998c/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index cd05765..640ff3f 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,6 @@ 1.1-dev + * start hint replay as soon as FD notifies that the target is back up + (CASSANDRA-3958) * avoid unproductive deserializing of cached rows during compaction (CASSANDRA-3921) * fix concurrency issues with CQL keyspace creation (CASSANDRA-3903) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a043998c/src/java/org/apache/cassandra/db/HintedHandOffManager.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/HintedHandOffManager.java b/src/java/org/apache/cassandra/db/HintedHandOffManager.java index d28c3ae..8e6acb2 100644 --- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java +++ b/src/java/org/apache/cassandra/db/HintedHandOffManager.java @@ -268,24 +268,14 @@ public class HintedHandOffManager implements HintedHandOffManagerMBean return; // nothing to do, don't confuse users by logging a no-op handoff logger_.debug("Checking remote({}) schema before delivering hints", endpoint); - int waited; try { - waited = waitForSchemaAgreement(endpoint); + waitForSchemaAgreement(endpoint); } catch (TimeoutException e) { return; } - // sleep a random amount to stagger handoff delivery from different replicas. - // (if we had to wait, then gossiper randomness took care of that for us already.) - if (waited == 0) - { - // use a 'rounded' sleep interval because of a strange bug with windows: CASSANDRA-3375 - int sleep = FBUtilities.threadLocalRandom().nextInt(2000) * 30; - logger_.debug("Sleeping {}ms to stagger hint delivery", sleep); - Thread.sleep(sleep); - } if (!FailureDetector.instance.isAlive(endpoint)) {