You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2009/12/08 22:28:34 UTC

svn commit: r888576 - in /incubator/cassandra/trunk: ./ src/java/org/apache/cassandra/gms/

Author: jbellis
Date: Tue Dec  8 21:28:33 2009
New Revision: 888576

URL: http://svn.apache.org/viewvc?rev=888576&view=rev
Log:
increase failure conviction threshold.  patch by Brandon Williams; reviewed by jbellis for CASSANDRA-610

Modified:
    incubator/cassandra/trunk/CHANGES.txt
    incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/FailureDetector.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/IFailureDetectionEventListener.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/IFailureNotification.java

Modified: incubator/cassandra/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/CHANGES.txt?rev=888576&r1=888575&r2=888576&view=diff
==============================================================================
--- incubator/cassandra/trunk/CHANGES.txt (original)
+++ incubator/cassandra/trunk/CHANGES.txt Tue Dec  8 21:28:33 2009
@@ -16,6 +16,8 @@
  * make consistency_level functional in get_range_slice (CASSANDRA-568)
  * optimize key deserialization for RandomPartitioner (CASSANDRA-581)
  * avoid GCing tombstones except on major compaction (CASSANDRA-604)
+ * increase failure conviction threshold, resulting in less nodes
+   incorrectly (and temporarily) marked as down (CASSANDRA-610)
 
 
 0.5.0 beta

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/FailureDetector.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/FailureDetector.java?rev=888576&r1=888575&r2=888576&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/FailureDetector.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/FailureDetector.java Tue Dec  8 21:28:33 2009
@@ -45,7 +45,6 @@
 {
     private static Logger logger_ = Logger.getLogger(FailureDetector.class);
     private static final int sampleSize_ = 1000;
-    private static final int phiSuspectThreshold_ = 5;
     private static final int phiConvictThreshold_ = 8;
     /* The Failure Detector has to have been up for at least 1 min. */
     private static final long uptimeThreshold_ = 60000;
@@ -169,27 +168,15 @@
             return;
         }
         long now = System.currentTimeMillis();
-        /* We need this so that we do not suspect a convict. */
-        boolean isConvicted = false;
         double phi = hbWnd.phi(now);
         if (logger_.isTraceEnabled())
             logger_.trace("PHI for " + ep + " : " + phi);
         
-        /*
         if ( phi > phiConvictThreshold_ )
-        {            
-            isConvicted = true;     
-            for ( IFailureDetectionEventListener listener : fdEvntListeners_ )
-            {
-                listener.convict(ep);                
-            }
-        }
-        */
-        if ( !isConvicted && phi > phiSuspectThreshold_ )
         {     
             for ( IFailureDetectionEventListener listener : fdEvntListeners_ )
             {
-                listener.suspect(ep);
+                listener.convict(ep);
             }
         }        
     }

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java?rev=888576&r1=888575&r2=888576&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java Tue Dec  8 21:28:33 2009
@@ -186,34 +186,9 @@
      *
      * param @ endpoint end point that is convicted.
     */
-
     public void convict(InetAddress endpoint)
     {
         EndPointState epState = endPointStateMap_.get(endpoint);
-        if (epState != null)
-        {
-            if (!epState.isAlive() && epState.isAGossiper())
-            {
-                // just to be sure - should already have been done by suspect()
-                if (liveEndpoints_.contains(endpoint))
-                {
-                    logger_.info("InetAddress " + endpoint + " is now dead.");
-                    isAlive(endpoint, epState, false);
-                }
-                epState.isAGossiper(false);
-            }
-        }
-    }
-
-    /**
-     * This method is part of IFailureDetectionEventListener interface. This is invoked
-     * by the Failure Detector when it suspects an end point.
-     *
-     * param @ endpoint end point that is suspected.
-    */
-    public void suspect(InetAddress endpoint)
-    {
-        EndPointState epState = endPointStateMap_.get(endpoint);
         if (epState.isAlive())
         {
             logger_.info("InetAddress " + endpoint + " is now dead.");

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/IFailureDetectionEventListener.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/IFailureDetectionEventListener.java?rev=888576&r1=888575&r2=888576&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/IFailureDetectionEventListener.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/IFailureDetectionEventListener.java Tue Dec  8 21:28:33 2009
@@ -21,7 +21,7 @@
 import java.net.InetAddress;
 
 /**
- * Implemented by the Gossiper to either convict/suspect an endpoint
+ * Implemented by the Gossiper to convict an endpoint
  * based on the PHI calculated by the Failure Detector on the inter-arrival
  * times of the heart beats.
  */
@@ -34,9 +34,4 @@
      */
     public void convict(InetAddress ep);
     
-    /**
-     * Suspect the specified endpoint.
-     * @param ep endpoint to be suspected.
-     */
-    public void suspect(InetAddress ep);
 }

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/IFailureNotification.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/IFailureNotification.java?rev=888576&r1=888575&r2=888576&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/IFailureNotification.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/gms/IFailureNotification.java Tue Dec  8 21:28:33 2009
@@ -22,6 +22,6 @@
 
 public interface IFailureNotification
 {   
-    public void suspect(InetAddress ep);
+    public void convict(InetAddress ep);
     public void revive(InetAddress ep);
 }