Switch from NBHM to CHM in MessagingService's callback map
patch by Daniel Norberg; reviewed by jbellis for CASSANDRA-4708


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

Branch: refs/heads/trunk
Commit: db45670a3e0650738fee52ebba5bbe9b43af26c0
Parents: 686fe1e
Author: Jonathan Ellis <[email protected]>
Authored: Mon Sep 24 10:08:48 2012 -0500
Committer: Jonathan Ellis <[email protected]>
Committed: Mon Sep 24 10:08:48 2012 -0500

----------------------------------------------------------------------
 CHANGES.txt                                        |    5 ++++-
 .../org/apache/cassandra/utils/ExpiringMap.java    |    4 ++--
 2 files changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/db45670a/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index b26917b..831496f 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,7 +1,10 @@
 1.1.6
+ * Switch from NBHM to CHM in MessagingService's callback map, which
+   prevents OOM in long-running instances (CASSANDRA-4708)
  * Improve IAuthority interface by introducing fine-grained
    access permissions and grant/revoke commands (CASSANDRA-4490)
- * fix assumption error in CLI when updating/describing keyspace 
(CASSANDRA-4322)
+ * fix assumption error in CLI when updating/describing keyspace 
+   (CASSANDRA-4322)
  * Adds offline sstablescrub to debian packaging (CASSANDRA-4642)
  * Automatic fixing of overlapping leveled sstables (CASSANDRA-4644)
  * fix error when using ORDER BY with extended selections (CASSANDRA-4689)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/db45670a/src/java/org/apache/cassandra/utils/ExpiringMap.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/ExpiringMap.java 
b/src/java/org/apache/cassandra/utils/ExpiringMap.java
index ff9f2da..0f9dca8 100644
--- a/src/java/org/apache/cassandra/utils/ExpiringMap.java
+++ b/src/java/org/apache/cassandra/utils/ExpiringMap.java
@@ -20,6 +20,7 @@ package org.apache.cassandra.utils;
 
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
@@ -28,7 +29,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor;
-import org.cliffc.high_scale_lib.NonBlockingHashMap;
 
 public class ExpiringMap<K, V>
 {
@@ -63,7 +63,7 @@ public class ExpiringMap<K, V>
     // if we use more ExpiringMaps we may want to add multiple threads to this 
executor
     private static final ScheduledExecutorService service = new 
DebuggableScheduledThreadPoolExecutor("EXPIRING-MAP-REAPER");
 
-    private final NonBlockingHashMap<K, CacheableObject<V>> cache = new 
NonBlockingHashMap<K, CacheableObject<V>>();
+    private final ConcurrentHashMap<K, CacheableObject<V>> cache = new 
ConcurrentHashMap<K, CacheableObject<V>>();
     private final long defaultExpiration;
 
     public ExpiringMap(long defaultExpiration)

Reply via email to