Author: chetanm
Date: Thu Nov 19 05:15:50 2015
New Revision: 1715092

URL: http://svn.apache.org/viewvc?rev=1715092&view=rev
Log:
OAK-3651 - Remove HierrachialCacheInvalidator

Removed:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/CacheInvalidator.java
Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
    
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/CacheInvalidationIT.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java?rev=1715092&r1=1715091&r2=1715092&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
 Thu Nov 19 05:15:50 2015
@@ -68,7 +68,6 @@ import org.apache.jackrabbit.oak.plugins
 import org.apache.jackrabbit.oak.plugins.document.UpdateOp.Operation;
 import org.apache.jackrabbit.oak.plugins.document.UpdateUtils;
 import org.apache.jackrabbit.oak.plugins.document.cache.CacheInvalidationStats;
-import 
org.apache.jackrabbit.oak.plugins.document.mongo.CacheInvalidator.InvalidationResult;
 import org.apache.jackrabbit.oak.plugins.document.util.StringValue;
 import org.apache.jackrabbit.oak.plugins.document.util.Utils;
 import org.apache.jackrabbit.oak.stats.Clock;
@@ -289,9 +288,12 @@ public class MongoDocumentStore implemen
 
     @Override
     public CacheInvalidationStats invalidateCache() {
-        //TODO Check if we should use LinearInvalidator for small cache sizes 
as
-        //that would lead to lesser number of queries
-        return 
CacheInvalidator.createHierarchicalInvalidator(this).invalidateCache();
+        InvalidationResult result = new InvalidationResult();
+        for (CacheValue key : nodesCache.asMap().keySet()) {
+            result.invalidationCount++;
+            invalidateCache(Collection.NODES, key.toString());
+        }
+        return result;
     }
     
     @Override
@@ -1510,4 +1512,28 @@ public class MongoDocumentStore implemen
 
         return diff;
     }
+
+    private static class InvalidationResult implements CacheInvalidationStats {
+        int invalidationCount;
+        int upToDateCount;
+        int cacheSize;
+        int queryCount;
+        int cacheEntriesProcessedCount;
+
+        @Override
+        public String toString() {
+            return "InvalidationResult{" +
+                    "invalidationCount=" + invalidationCount +
+                    ", upToDateCount=" + upToDateCount +
+                    ", cacheSize=" + cacheSize +
+                    ", queryCount=" + queryCount +
+                    ", cacheEntriesProcessedCount=" + 
cacheEntriesProcessedCount +
+                    '}';
+        }
+
+        @Override
+        public String summaryReport() {
+            return toString();
+        }
+    }
 }

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/CacheInvalidationIT.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/CacheInvalidationIT.java?rev=1715092&r1=1715091&r2=1715092&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/CacheInvalidationIT.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/CacheInvalidationIT.java
 Thu Nov 19 05:15:50 2015
@@ -38,7 +38,6 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import static 
org.apache.jackrabbit.oak.plugins.document.mongo.CacheInvalidator.InvalidationResult;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
@@ -109,37 +108,7 @@ public class CacheInvalidationIT extends
         assertEquals(initialCacheSizeC1+ totalPaths - 2, 
Iterables.size(ds(c1).getCacheEntries()));
     }
 
-    @Test
-    public void testCacheInvalidationHierarchical()
-            throws CommitFailedException {
-        final int totalPaths = createScenario();
-
-        NodeBuilder b2 = getRoot(c2).builder();
-        builder(b2, "/a/c").setProperty("foo", "bar");
-        c2.merge(b2, EmptyHook.INSTANCE, CommitInfo.EMPTY);
-
-        //Push pending changes at /a
-        c2.runBackgroundOperations();
-
-        //Refresh the head for c1
-        refreshHead(c1);
-
-        InvalidationResult result = 
CacheInvalidator.createHierarchicalInvalidator(ds(c1)).invalidateCache();
-
-        //Only 2 entries /a and /a/d would be invalidated
-        // '/' would have been added to cache in start of backgroundRead
-        //itself
-        assertEquals(2, result.invalidationCount);
-
-        //All excluding /a and /a/d would be updated. Also we exclude / from 
processing
-        assertEquals(initialCacheSizeC1 + totalPaths - 3, 
result.upToDateCount);
 
-        //3 queries would be fired for [/] [/a] [/a/b, /a/c, /a/d]
-        assertEquals(2, result.queryCount);
-
-        //Query would only have been done for first two levels /a and /a/b, 
/a/c, /a/d
-        assertEquals(4, result.cacheEntriesProcessedCount);
-    }
 
     @Test
     public void testCacheInvalidationHierarchicalNotExist()
@@ -178,38 +147,6 @@ public class CacheInvalidationIT extends
 
     }
 
-    @Test
-    public void testCacheInvalidationLinear() throws CommitFailedException {
-        final int totalPaths = createScenario();
-
-        NodeBuilder b2 = getRoot(c2).builder();
-        builder(b2, "/a/c").setProperty("foo", "bar");
-        c2.merge(b2, EmptyHook.INSTANCE, CommitInfo.EMPTY);
-
-        //Push pending changes at /a
-        c2.runBackgroundOperations();
-
-        //Refresh the head for c1
-        refreshHead(c1);
-
-        InvalidationResult result = 
CacheInvalidator.createLinearInvalidator(ds(c1)).invalidateCache();
-
-        //Only 2 entries /a and /a/d would be invalidated
-        // '/' would have been added to cache in start of backgroundRead
-        //itself
-        assertEquals(2, result.invalidationCount);
-
-        //All excluding /a and /a/d would be updated
-        assertEquals(initialCacheSizeC1 + totalPaths - 2, 
result.upToDateCount);
-
-        //Only one query would be fired
-        assertEquals(1, result.queryCount);
-
-        //Query would be done for all the cache entries
-        assertEquals(initialCacheSizeC1 + totalPaths, 
result.cacheEntriesProcessedCount);
-
-    }
-
     private int getCurrentCacheSize(DocumentNodeStore ds){
         return Iterables.size(ds(ds).getCacheEntries());
     }


Reply via email to