You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by br...@apache.org on 2015/05/19 22:24:01 UTC
cassandra git commit: Change gossip stabilization to use endpoit size
Repository: cassandra
Updated Branches:
refs/heads/trunk a78f5e863 -> 2b1e6aba4
Change gossip stabilization to use endpoit size
Patch by brandonwilliams, reviewed by thobbs for CASSANDRA-9401
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2b1e6aba
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2b1e6aba
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2b1e6aba
Branch: refs/heads/trunk
Commit: 2b1e6aba405002ce86d5badf4223de9751bf867d
Parents: a78f5e8
Author: Brandon Williams <br...@apache.org>
Authored: Tue May 19 15:23:31 2015 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Tue May 19 15:23:31 2015 -0500
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../apache/cassandra/service/CassandraDaemon.java | 18 +++++++++---------
2 files changed, 10 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/2b1e6aba/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 127b7bf..f86971a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,6 @@
3.0:
* Decommissioned nodes will not rejoin the cluster (CASSANDRA-8801)
+ * Change gossip stabilization to use endpoit size (CASSANDRA-9401)
2.2
Merged from 2.1:
http://git-wip-us.apache.org/repos/asf/cassandra/blob/2b1e6aba/src/java/org/apache/cassandra/service/CassandraDaemon.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/CassandraDaemon.java b/src/java/org/apache/cassandra/service/CassandraDaemon.java
index 914600e..30a2b6e 100644
--- a/src/java/org/apache/cassandra/service/CassandraDaemon.java
+++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java
@@ -37,6 +37,7 @@ import javax.management.remote.JMXServiceURL;
import javax.management.remote.rmi.RMIConnectorServer;
import com.google.common.util.concurrent.Uninterruptibles;
+import org.apache.cassandra.gms.Gossiper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -517,28 +518,27 @@ public class CassandraDaemon
Uninterruptibles.sleepUninterruptibly(GOSSIP_SETTLE_MIN_WAIT_MS, TimeUnit.MILLISECONDS);
int totalPolls = 0;
int numOkay = 0;
- JMXEnabledThreadPoolExecutor gossipStage = (JMXEnabledThreadPoolExecutor)StageManager.getStage(Stage.GOSSIP);
+ int epSize = Gossiper.instance.getEndpointStates().size();
while (numOkay < GOSSIP_SETTLE_POLL_SUCCESSES_REQUIRED)
{
Uninterruptibles.sleepUninterruptibly(GOSSIP_SETTLE_POLL_INTERVAL_MS, TimeUnit.MILLISECONDS);
- long completed = gossipStage.metrics.completedTasks.getValue();
- long active = gossipStage.metrics.activeTasks.getValue();
- long pending = gossipStage.metrics.pendingTasks.getValue();
+ int currentSize = Gossiper.instance.getEndpointStates().size();
totalPolls++;
- if (active == 0 && pending == 0)
+ if (currentSize == epSize)
{
- logger.debug("Gossip looks settled. CompletedTasks: {}", completed);
+ logger.debug("Gossip looks settled.");
numOkay++;
}
else
{
- logger.info("Gossip not settled after {} polls. Gossip Stage active/pending/completed: {}/{}/{}", totalPolls, active, pending, completed);
+ logger.info("Gossip not settled after {} polls.", totalPolls);
numOkay = 0;
}
+ epSize = currentSize;
if (forceAfter > 0 && totalPolls > forceAfter)
{
- logger.warn("Gossip not settled but startup forced by cassandra.skip_wait_for_gossip_to_settle. Gossip Stage total/active/pending/completed: {}/{}/{}/{}",
- totalPolls, active, pending, completed);
+ logger.warn("Gossip not settled but startup forced by cassandra.skip_wait_for_gossip_to_settle. Gossip total polls: {}",
+ totalPolls);
break;
}
}