Author: jbellis
Date: Mon Jan 18 15:52:00 2010
New Revision: 900437

URL: http://svn.apache.org/viewvc?rev=900437&view=rev
Log:
approximate capacity setting in key cache by adjusting each sstable cache by 
the desired ratio
patch by jbellis; reviewed by goffinet for CASSANDRA-688

Modified:
    
incubator/cassandra/trunk/src/java/org/apache/cassandra/cache/JMXAggregatingCache.java
    
incubator/cassandra/trunk/src/java/org/apache/cassandra/cache/JMXAggregatingCacheMBean.java

Modified: 
incubator/cassandra/trunk/src/java/org/apache/cassandra/cache/JMXAggregatingCache.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/cache/JMXAggregatingCache.java?rev=900437&r1=900436&r2=900437&view=diff
==============================================================================
--- 
incubator/cassandra/trunk/src/java/org/apache/cassandra/cache/JMXAggregatingCache.java
 (original)
+++ 
incubator/cassandra/trunk/src/java/org/apache/cassandra/cache/JMXAggregatingCache.java
 Mon Jan 18 15:52:00 2010
@@ -20,6 +20,15 @@
         return capacity;
     }
 
+    public void setCapacity(int capacity)
+    {
+        double ratio = capacity / getCapacity();
+        for (InstrumentedCache cache : caches)
+        {
+            cache.setCapacity(Math.max(1, (int)(cache.getCapacity() * ratio)));
+        }
+    }
+
     public int getSize()
     {
         int size = 0;

Modified: 
incubator/cassandra/trunk/src/java/org/apache/cassandra/cache/JMXAggregatingCacheMBean.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/cache/JMXAggregatingCacheMBean.java?rev=900437&r1=900436&r2=900437&view=diff
==============================================================================
--- 
incubator/cassandra/trunk/src/java/org/apache/cassandra/cache/JMXAggregatingCacheMBean.java
 (original)
+++ 
incubator/cassandra/trunk/src/java/org/apache/cassandra/cache/JMXAggregatingCacheMBean.java
 Mon Jan 18 15:52:00 2010
@@ -3,6 +3,7 @@
 public interface JMXAggregatingCacheMBean
 {
     public int getCapacity();
+    public void setCapacity(int capacity);
     public int getSize();
     public double getHitRate();
 }
\ No newline at end of file


Reply via email to