cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From brandonwilli...@apache.org
Subject [1/3] cassandra git commit: Fix IllegalArgumentException in dynamic snitch
Date Fri, 06 Feb 2015 19:24:36 GMT
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.0 1467b9f78 -> cf73de2dc
  refs/heads/cassandra-2.1 caba0a592 -> 5e95684c9


Fix IllegalArgumentException in dynamic snitch

Patch by brandonwilliams, viewed by Benedict for CASSANDRA-8448


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

Branch: refs/heads/cassandra-2.0
Commit: cf73de2dc99d4857cc4bac734cf48cf9a21aa9be
Parents: 1467b9f
Author: Brandon Williams <brandonwilliams@apache.org>
Authored: Fri Feb 6 13:23:05 2015 -0600
Committer: Brandon Williams <brandonwilliams@apache.org>
Committed: Fri Feb 6 13:23:05 2015 -0600

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


http://git-wip-us.apache.org/repos/asf/cassandra/blob/cf73de2d/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index f4c96dc..fa9c77d 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.13:
+ * Fix IllegalArgumentException in dynamic snitch (CASSANDRA-8448)
  * Add support for UPDATE ... IF EXISTS (CASSANDRA-8610)
  * Fix reversal of list prepends (CASSANDRA-8733)
  * Prevent non-zero default_time_to_live on tables with counters

http://git-wip-us.apache.org/repos/asf/cassandra/blob/cf73de2d/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 49442c8..3469847 100644
--- a/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java
+++ b/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java
@@ -53,7 +53,7 @@ public class DynamicEndpointSnitch extends AbstractEndpointSnitch implements
ILa
     private String mbeanName;
     private boolean registered = false;
 
-    private final ConcurrentHashMap<InetAddress, Double> scores = new ConcurrentHashMap<InetAddress,
Double>();
+    private volatile HashMap<InetAddress, Double> scores = new HashMap<InetAddress,
Double>();
     private final ConcurrentHashMap<InetAddress, ExponentiallyDecayingSample> samples
= new ConcurrentHashMap<InetAddress, ExponentiallyDecayingSample>();
 
     public final IEndpointSnitch subsnitch;
@@ -243,6 +243,7 @@ public class DynamicEndpointSnitch extends AbstractEndpointSnitch implements
ILa
         double maxLatency = 1;
         // We're going to weight the latency for each host against the worst one we see,
to
         // arrive at sort of a 'badness percentage' for them. First, find the worst for each:
+        HashMap<InetAddress, Double> newScores = new HashMap<>();
         for (Map.Entry<InetAddress, ExponentiallyDecayingSample> entry : samples.entrySet())
         {
             double mean = entry.getValue().getSnapshot().getMedian();
@@ -257,8 +258,9 @@ public class DynamicEndpointSnitch extends AbstractEndpointSnitch implements
ILa
             // "Severity" is basically a measure of compaction activity (CASSANDRA-3722).
             score += StorageService.instance.getSeverity(entry.getKey());
             // lowest score (least amount of badness) wins.
-            scores.put(entry.getKey(), score);            
+            newScores.put(entry.getKey(), score);
         }
+        scores = newScores;
     }
 
 


Mime
View raw message