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/04/22 20:40:37 UTC

svn commit: r767610 - /incubator/cassandra/trunk/src/org/apache/cassandra/gms/FailureDetector.java

Author: jbellis
Date: Wed Apr 22 18:40:36 2009
New Revision: 767610

URL: http://svn.apache.org/viewvc?rev=767610&view=rev
Log:
replace ArrayList w/ ArrayDeque.
patch by jbellis; reviewed by Jun Rao for #14

Modified:
    incubator/cassandra/trunk/src/org/apache/cassandra/gms/FailureDetector.java

Modified: incubator/cassandra/trunk/src/org/apache/cassandra/gms/FailureDetector.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/gms/FailureDetector.java?rev=767610&r1=767609&r2=767610&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/gms/FailureDetector.java (original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/gms/FailureDetector.java Wed Apr 22 18:40:36 2009
@@ -27,12 +27,13 @@
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
+import org.apache.commons.lang.StringUtils;
+
 import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.net.EndPoint;
 import org.apache.cassandra.utils.FBUtilities;
 import org.apache.cassandra.utils.LogUtil;
 import org.apache.log4j.Logger;
-import org.apache.cassandra.utils.*;
 
 /**
  * This FailureDetector is an implementation of the paper titled
@@ -234,20 +235,20 @@
 {
     private static Logger logger_ = Logger.getLogger(ArrivalWindow.class);
     private double tLast_ = 0L;
-    private List<Double> arrivalIntervals_;
+    private Deque<Double> arrivalIntervals_;
     private int size_;
     
     ArrivalWindow(int size)
     {
         size_ = size;
-        arrivalIntervals_ = new ArrayList<Double>(size);        
+        arrivalIntervals_ = new ArrayDeque<Double>(size);
     }
     
     synchronized void add(double value)
     {
         if ( arrivalIntervals_.size() == size_ )
         {                          
-            arrivalIntervals_.remove(0);            
+            arrivalIntervals_.remove();            
         }
         
         double interArrivalTime;
@@ -266,10 +267,9 @@
     synchronized double sum()
     {
         double sum = 0d;
-        int size = arrivalIntervals_.size();
-        for( int i = 0; i < size; ++i )
+        for (Double interval : arrivalIntervals_)
         {
-            sum += arrivalIntervals_.get(i);
+            sum += interval;
         }
         return sum;
     }
@@ -278,12 +278,13 @@
     {
         double sumOfDeviations = 0d;
         double mean = mean();
-        int size = arrivalIntervals_.size();
-        
-        for( int i = 0; i < size; ++i )
+
+        for (Double interval : arrivalIntervals_)
         {
-            sumOfDeviations += (arrivalIntervals_.get(i) - mean)*(arrivalIntervals_.get(i) - mean);
+            double v = interval - mean;
+            sumOfDeviations += v * v;
         }
+
         return sumOfDeviations;
     }
     
@@ -333,15 +334,7 @@
     
     public String toString()
     {
-        StringBuilder sb = new StringBuilder();    
-        List<Double> arrivalIntervals = new ArrayList<Double>(arrivalIntervals_);
-        int size = arrivalIntervals.size();
-        for ( int i = 0; i < size; ++i )
-        {
-            sb.append(arrivalIntervals.get(i));
-            sb.append(" ");    
-        }
-        return sb.toString();
+        return StringUtils.join(arrivalIntervals_, " ");
     }
 }