You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by mr...@apache.org on 2019/09/05 07:51:46 UTC
svn commit: r1866440 - in /jackrabbit/oak/trunk/oak-store-document/src:
main/java/org/apache/jackrabbit/oak/plugins/document/
test/java/org/apache/jackrabbit/oak/plugins/document/
Author: mreutegg
Date: Thu Sep 5 07:51:45 2019
New Revision: 1866440
URL: http://svn.apache.org/viewvc?rev=1866440&view=rev
Log:
OAK-3895: Expose jmx to invalidate cache entries
Patch provided by José Cordero
Modified:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBean.java
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBeanImpl.java
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java
Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java?rev=1866440&r1=1866439&r2=1866440&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java Thu Sep 5 07:51:45 2019
@@ -72,6 +72,11 @@ abstract class DiffCache {
abstract Iterable<CacheStats> getStats();
/**
+ * Invalidates all the entries in the cache.
+ */
+ abstract void invalidateAll();
+
+ /**
* Parses the jsop diff returned by
* {@link #getChanges(RevisionVector, RevisionVector, Path, Loader)} and reports the
* changes by calling the appropriate methods on {@link Diff}.
Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBean.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBean.java?rev=1866440&r1=1866439&r2=1866440&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBean.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBean.java Thu Sep 5 07:51:45 2019
@@ -76,4 +76,14 @@ public interface DocumentNodeStoreMBean
@Description("The id of an inactive cluster node.")
@Name("clusterId")
int clusterId);
+
+ @Description("Invalidates all the caches used by the DocumentNodeStore: DiffCache, NodeCache and NodeChildrenCache.")
+ String cleanAllCaches();
+
+ @Description("Invalidates the specified cache: DiffCache, NodeCache or NodeChildrenCache.\n" +
+ "Note: The values are case insensitive.")
+ String cleanIndividualCache(
+ @Description("Possible values are: DIFF, NODE, NODECHILDREN")
+ @Name("name")
+ String name);
}
Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBeanImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBeanImpl.java?rev=1866440&r1=1866439&r2=1866440&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBeanImpl.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBeanImpl.java Thu Sep 5 07:51:45 2019
@@ -239,4 +239,29 @@ final class DocumentNodeStoreMBeanImpl e
final String from = Utils.getKeyLowerLimit(pathRef);
return nodeStore.getDocumentStore().query(Collection.NODES, from, to, 10000);
}
+
+ @Override
+ public String cleanAllCaches() {
+ nodeStore.getDiffCache().invalidateAll();
+ nodeStore.getNodeCache().invalidateAll();
+ nodeStore.getNodeChildrenCache().invalidateAll();
+ return "Caches invalidated.";
+ }
+
+ @Override
+ public String cleanIndividualCache(String name) {
+ switch(name.toUpperCase()) {
+ case "DIFF":
+ nodeStore.getDiffCache().invalidateAll();
+ return "DiffCache invalidated.";
+ case "NODE":
+ nodeStore.getNodeCache().invalidateAll();
+ return "NodeCache invalidated.";
+ case "NODECHILDREN":
+ nodeStore.getNodeChildrenCache().invalidateAll();
+ return "NodeChildrenCache invalidated.";
+ default:
+ return "ERROR: Invalid cache name received.";
+ }
+ }
}
Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java?rev=1866440&r1=1866439&r2=1866440&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java Thu Sep 5 07:51:45 2019
@@ -307,5 +307,10 @@ class JournalDiffLoader implements DiffC
Iterable<CacheStats> getStats() {
return cache.getStats();
}
+
+ @Override
+ public void invalidateAll() {
+ cache.invalidateAll();
+ }
}
}
Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java?rev=1866440&r1=1866439&r2=1866440&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java Thu Sep 5 07:51:45 2019
@@ -112,6 +112,11 @@ public class LocalDiffCache extends Diff
return Collections.singleton(diffCacheStats);
}
+ @Override
+ public void invalidateAll() {
+ diffCache.invalidateAll();
+ }
+
//-----------------------------< internal >---------------------------------
Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java?rev=1866440&r1=1866439&r2=1866440&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java Thu Sep 5 07:51:45 2019
@@ -108,6 +108,11 @@ public class MemoryDiffCache extends Dif
return Collections.singleton(diffCacheStats);
}
+ @Override
+ public void invalidateAll() {
+ diffCache.invalidateAll();
+ }
+
protected class MemoryEntry implements Entry {
private final RevisionVector from;
Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java?rev=1866440&r1=1866439&r2=1866440&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java Thu Sep 5 07:51:45 2019
@@ -97,4 +97,10 @@ class TieredDiffCache extends DiffCache
public Iterable<CacheStats> getStats() {
return Iterables.concat(localCache.getStats(), memoryCache.getStats());
}
+
+ @Override
+ public void invalidateAll() {
+ localCache.invalidateAll();
+ memoryCache.invalidateAll();
+ }
}
Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java?rev=1866440&r1=1866439&r2=1866440&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java Thu Sep 5 07:51:45 2019
@@ -64,4 +64,9 @@ class AmnesiaDiffCache extends DiffCache
public Iterable<CacheStats> getStats() {
return Collections.emptyList();
}
+
+ @Override
+ public void invalidateAll() {
+ // Nothing to do
+ }
}