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());
}