Author: jbellis
Date: Mon Mar  1 21:31:10 2010
New Revision: 917729

URL: http://svn.apache.org/viewvc?rev=917729&view=rev
Log:
add invalidateRowCache to CFSMbean.
patch by jbellis; reviewed by goffinet for CASSANDRA-761

Modified:
    
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/cache/InstrumentedCache.java
    
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
    
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java

Modified: 
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/cache/InstrumentedCache.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/cache/InstrumentedCache.java?rev=917729&r1=917728&r2=917729&view=diff
==============================================================================
--- 
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/cache/InstrumentedCache.java
 (original)
+++ 
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/cache/InstrumentedCache.java
 Mon Mar  1 21:31:10 2010
@@ -31,7 +31,8 @@
     private final ConcurrentLinkedHashMap<K, V> map;
     private final AtomicLong requests = new AtomicLong(0);
     private final AtomicLong hits = new AtomicLong(0);
-    long lastRequests, lastHits;
+    private final AtomicLong lastRequests = new AtomicLong(0);
+    private final AtomicLong lastHits = new AtomicLong(0);
 
     public InstrumentedCache(int capacity)
     {
@@ -95,12 +96,19 @@
         long h = hits.get();
         try
         {
-            return ((double)(h - lastHits)) / (r - lastRequests);
+            return ((double)(h - lastHits.get())) / (r - lastRequests.get());
         }
         finally
         {
-            lastRequests = r;
-            lastHits = h;
+            lastRequests.set(r);
+            lastHits.set(h);
         }
     }
+
+    public void clear()
+    {
+        map.clear();
+        requests.set(0);
+        hits.set(0);
+    }
 }

Modified: 
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=917729&r1=917728&r2=917729&view=diff
==============================================================================
--- 
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
 (original)
+++ 
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
 Mon Mar  1 21:31:10 2010
@@ -1071,8 +1071,7 @@
 
     void invalidateCachedRow(String key)
     {
-        if (ssTables_.getRowCache() != null)
-            ssTables_.getRowCache().remove(key);
+        ssTables_.getRowCache().remove(key);
     }
 
     public void forceMajorCompaction()
@@ -1080,6 +1079,11 @@
         CompactionManager.instance.submitMajor(this);
     }
 
+    public void invalidateRowCache()
+    {
+        ssTables_.getRowCache().clear();
+    }
+
     public static Iterable<ColumnFamilyStore> all()
     {
         Iterable<ColumnFamilyStore>[] stores = new 
Iterable[DatabaseDescriptor.getTables().size()];

Modified: 
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java?rev=917729&r1=917728&r2=917729&view=diff
==============================================================================
--- 
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java
 (original)
+++ 
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java
 Mon Mar  1 21:31:10 2010
@@ -113,4 +113,9 @@
      * force a major compaction of this column family
      */
     public void forceMajorCompaction();
+
+    /**
+     * invalidate the row cache; for use after bulk loading via BinaryMemtable
+     */
+    public void invalidateRowCache();
 }


Reply via email to