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 2010/07/20 01:54:12 UTC

svn commit: r965685 - in /cassandra/trunk: conf/cassandra.yaml src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java

Author: brandonwilliams
Date: Mon Jul 19 23:54:12 2010
New Revision: 965685

URL: http://svn.apache.org/viewvc?rev=965685&view=rev
Log:
DynamicEndpointSnitch improvements, make it the default.  Patch by brandonwilliams; reviewed by jbellis for CASSANDRA-1296

Modified:
    cassandra/trunk/conf/cassandra.yaml
    cassandra/trunk/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java

Modified: cassandra/trunk/conf/cassandra.yaml
URL: http://svn.apache.org/viewvc/cassandra/trunk/conf/cassandra.yaml?rev=965685&r1=965684&r2=965685&view=diff
==============================================================================
--- cassandra/trunk/conf/cassandra.yaml (original)
+++ cassandra/trunk/conf/cassandra.yaml Mon Jul 19 23:54:12 2010
@@ -148,7 +148,7 @@ endpoint_snitch: org.apache.cassandra.lo
 # wrapped with a dynamic snitch, which will monitor read latencies
 # and avoid reading from hosts that have slowed (due to compaction,
 # for instance)
-dynamic_snitch: false
+dynamic_snitch: true
 
 # request_scheduler -- Set this to a class that implements
 # RequestScheduler, which will schedule incoming client requests

Modified: cassandra/trunk/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java?rev=965685&r1=965684&r2=965685&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java Mon Jul 19 23:54:12 2010
@@ -45,9 +45,9 @@ import org.apache.cassandra.utils.FBUtil
  */
 public class DynamicEndpointSnitch extends AbstractEndpointSnitch implements ILatencySubscriber, DynamicEndpointSnitchMBean
 {
-    private static int UPDATES_PER_INTERVAL = 100;
-    private static int UPDATE_INTERVAL_IN_MS = 1000;
-    private static int RESET_INTERVAL_IN_MS = 60000;
+    private static int UPDATES_PER_INTERVAL = 10000;
+    private static int UPDATE_INTERVAL_IN_MS = 100;
+    private static int RESET_INTERVAL_IN_MS = 60000 * 10;
     private static int WINDOW_SIZE = 100;
     private boolean registered = false;
 
@@ -199,7 +199,11 @@ class AdaptiveLatencyTracker extends Abs
 
     public void add(double i)
     {
-        latencies.offer(i);
+        if (!latencies.offer(i))
+        {
+            latencies.remove();
+            latencies.offer(i);
+        }
     }
 
     public void clear()