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()
