You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2013/05/09 00:15:03 UTC

[2/3] git commit: MemoryMeter is no longer used by CacheService

MemoryMeter is no longer used by CacheService


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

Branch: refs/heads/trunk
Commit: a5a3a28fc8cf69fa985b6c59fecb28578f12f4cf
Parents: ae0d6eb
Author: Jonathan Ellis <jb...@apache.org>
Authored: Wed May 8 17:14:44 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Wed May 8 17:14:44 2013 -0500

----------------------------------------------------------------------
 .../org/apache/cassandra/service/CacheService.java |   25 +-------------
 1 files changed, 2 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a5a3a28f/src/java/org/apache/cassandra/service/CacheService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/CacheService.java b/src/java/org/apache/cassandra/service/CacheService.java
index 8396d61..5eff28a 100644
--- a/src/java/org/apache/cassandra/service/CacheService.java
+++ b/src/java/org/apache/cassandra/service/CacheService.java
@@ -33,8 +33,6 @@ import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
 import com.google.common.util.concurrent.Futures;
-import com.googlecode.concurrentlinkedhashmap.EntryWeigher;
-import org.github.jamm.MemoryMeter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -102,7 +100,6 @@ public class CacheService implements CacheServiceMBean
     }
 
     /**
-     * We can use Weighers.singleton() because Long can't be leaking memory
      * @return auto saving cache object
      */
     private AutoSavingCache<KeyCacheKey, RowIndexEntry> initKeyCache()
@@ -114,24 +111,7 @@ public class CacheService implements CacheServiceMBean
         // as values are constant size we can use singleton weigher
         // where 48 = 40 bytes (average size of the key) + 8 bytes (size of value)
         ICache<KeyCacheKey, RowIndexEntry> kc;
-        if (MemoryMeter.isInitialized())
-        {
-            kc = ConcurrentLinkedHashCache.create(keyCacheInMemoryCapacity);
-        }
-        else
-        {
-            logger.warn("MemoryMeter uninitialized (jamm not specified as java agent); KeyCache size in JVM Heap will not be calculated accurately. " +
-                        "Usually this means cassandra-env.sh disabled jamm because you are using a buggy JRE; upgrade to the Sun JRE instead");
-            /* We don't know the overhead size because memory meter is not enabled. */
-            EntryWeigher<KeyCacheKey, RowIndexEntry> weigher = new EntryWeigher<KeyCacheKey, RowIndexEntry>()
-            {
-                public int weightOf(KeyCacheKey key, RowIndexEntry entry)
-                {
-                    return key.key.length + entry.serializedSize();
-                }
-            };
-            kc = ConcurrentLinkedHashCache.create(keyCacheInMemoryCapacity, weigher);
-        }
+        kc = ConcurrentLinkedHashCache.create(keyCacheInMemoryCapacity);
         AutoSavingCache<KeyCacheKey, RowIndexEntry> keyCache = new AutoSavingCache<KeyCacheKey, RowIndexEntry>(kc, CacheType.KEY_CACHE, new KeyCacheSerializer());
 
         int keyCacheKeysToSave = DatabaseDescriptor.getKeyCacheKeysToSave();
@@ -272,8 +252,7 @@ public class CacheService implements CacheServiceMBean
         if (capacity < 0)
             throw new RuntimeException("capacity should not be negative.");
 
-        long weightedCapacity = capacity * 1024 * 1024;
-        keyCache.setCapacity(MemoryMeter.isInitialized() ? weightedCapacity : (weightedCapacity / 48));
+        keyCache.setCapacity(capacity * 1024 * 1024);
     }
 
     public long getRowCacheSize()