Add option to disable use of severity in DynamicEndpointSnitch

patch by Jeremiah Jordan; reviewed by Aleksey Yeschenko for
CASSANDRA-11737


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/11d4e73e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/11d4e73e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/11d4e73e

Branch: refs/heads/cassandra-3.7
Commit: 11d4e73e215cfe8baa16d9d6e0a589d6a94de56b
Parents: aacd452
Author: Jeremiah D Jordan <jerem...@datastax.com>
Authored: Fri May 6 09:45:10 2016 -0500
Committer: Aleksey Yeschenko <alek...@apache.org>
Committed: Tue May 10 15:59:02 2016 +0100

----------------------------------------------------------------------
 CHANGES.txt                                                     | 1 +
 .../org/apache/cassandra/locator/DynamicEndpointSnitch.java     | 5 ++++-
 2 files changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/11d4e73e/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 5885a9a..edf5aa3 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.15
+ * Add option to disable use of severity in DynamicEndpointSnitch 
(CASSANDRA-11737)
  * cqlsh COPY FROM fails for null values with non-prepared statements 
(CASSANDRA-11631)
  * Make cython optional in pylib/setup.py (CASSANDRA-11630)
  * Change order of directory searching for cassandra.in.sh to favor local one 
(CASSANDRA-11628)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/11d4e73e/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java 
b/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java
index 6b6286f..c84ca27 100644
--- a/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java
+++ b/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java
@@ -40,6 +40,8 @@ import com.yammer.metrics.stats.ExponentiallyDecayingSample;
  */
 public class DynamicEndpointSnitch extends AbstractEndpointSnitch implements 
ILatencySubscriber, DynamicEndpointSnitchMBean
 {
+    private static final boolean USE_SEVERITY = 
!Boolean.getBoolean("cassandra.ignore_dynamic_snitch_severity");
+
     private static final double ALPHA = 0.75; // set to 0.75 to make EDS more 
biased to towards the newer values
     private static final int WINDOW_SIZE = 100;
 
@@ -279,7 +281,8 @@ public class DynamicEndpointSnitch extends 
AbstractEndpointSnitch implements ILa
             double score = entry.getValue().getSnapshot().getMedian() / 
maxLatency;
             // finally, add the severity without any weighting, since hosts 
scale this relative to their own load and the size of the task causing the 
severity.
             // "Severity" is basically a measure of compaction activity 
(CASSANDRA-3722).
-            score += StorageService.instance.getSeverity(entry.getKey());
+            if (USE_SEVERITY)
+                score += StorageService.instance.getSeverity(entry.getKey());
             // lowest score (least amount of badness) wins.
             newScores.put(entry.getKey(), score);
         }

Reply via email to