Author: chetanm
Date: Fri Jun 2 03:59:22 2017
New Revision: 1797313
URL: http://svn.apache.org/viewvc?rev=1797313&view=rev
Log:
OAK-6081 - Indexing tooling via oak-run
Enable specifying cache distribution percentage explicitly so that
it can be tuned as per command requirement
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/DocumentNodeStoreOptions.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/NodeStoreFixtureProvider.java
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/DocumentNodeStoreOptions.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/DocumentNodeStoreOptions.java?rev=1797313&r1=1797312&r2=1797313&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/DocumentNodeStoreOptions.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/DocumentNodeStoreOptions.java
Fri Jun 2 03:59:22 2017
@@ -30,6 +30,10 @@ public class DocumentNodeStoreOptions im
private final OptionSpec<Integer> clusterId;
private final OptionSpec<Void> disableBranchesSpec;
private final OptionSpec<Integer> cacheSizeSpec;
+ private final OptionSpec<Integer> nodeCachePercentage;
+ private final OptionSpec<Integer> prevDocCachePercentage;
+ private final OptionSpec<Integer> childrenCachePercentage;
+ private final OptionSpec<Integer> diffCachePercentage;
private OptionSet options;
public DocumentNodeStoreOptions(OptionParser parser){
@@ -40,6 +44,18 @@ public class DocumentNodeStoreOptions im
cacheSizeSpec = parser.
accepts("cacheSize", "The cache size")
.withRequiredArg().ofType(Integer.class).defaultsTo(0);
+ nodeCachePercentage = parser.
+ accepts("nodeCachePercentage", "Percentage of cache to be
allocated towards Node cache")
+ .withRequiredArg().ofType(Integer.class).defaultsTo(35);
+ prevDocCachePercentage = parser.
+ accepts("prevDocCachePercentage", "Percentage of cache to be
allocated towards Previous Document cache")
+ .withRequiredArg().ofType(Integer.class).defaultsTo(4);
+ childrenCachePercentage = parser.
+ accepts("childrenCachePercentage", "Percentage of cache to be
allocated towards Children cache")
+ .withRequiredArg().ofType(Integer.class).defaultsTo(15);
+ diffCachePercentage = parser.
+ accepts("diffCachePercentage", "Percentage of cache to be
allocated towards Diff cache")
+ .withRequiredArg().ofType(Integer.class).defaultsTo(30);
}
@Override
@@ -54,7 +70,8 @@ public class DocumentNodeStoreOptions im
@Override
public String description() {
- return "Options related to constructing a DocumentNodeStore.";
+ return "Options related to constructing a DocumentNodeStore. \n" +
+ "Note that left over of sum of all cache ratio defined is
allocated to documentCache.";
}
@Override
@@ -78,4 +95,27 @@ public class DocumentNodeStoreOptions im
public boolean disableBranchesSpec() {
return options.has(disableBranchesSpec);
}
+
+ public int getNodeCachePercentage() {
+ return nodeCachePercentage.value(options);
+ }
+
+ public int getPrevDocCachePercentage() {
+ return prevDocCachePercentage.value(options);
+ }
+
+ public int getChildrenCachePercentage() {
+ return childrenCachePercentage.value(options);
+ }
+
+ public int getDiffCachePercentage() {
+ return diffCachePercentage.value(options);
+ }
+
+ public boolean isCacheDistributionDefined(){
+ return options.has(nodeCachePercentage) ||
+ options.has(prevDocCachePercentage) ||
+ options.has(childrenCachePercentage) ||
+ options.has(diffCachePercentage);
+ }
}
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/NodeStoreFixtureProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/NodeStoreFixtureProvider.java?rev=1797313&r1=1797312&r2=1797313&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/NodeStoreFixtureProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/NodeStoreFixtureProvider.java
Fri Jun 2 03:59:22 2017
@@ -113,6 +113,15 @@ public class NodeStoreFixtureProvider {
CommonOptions commonOpts = options.getOptionBean(CommonOptions.class);
+ if (docStoreOpts.isCacheDistributionDefined()){
+ builder.memoryCacheDistribution(
+ docStoreOpts.getNodeCachePercentage(),
+ docStoreOpts.getPrevDocCachePercentage(),
+ docStoreOpts.getChildrenCachePercentage(),
+ docStoreOpts.getDiffCachePercentage()
+ );
+ }
+
if (commonOpts.isMongo()) {
MongoClientURI uri = new MongoClientURI(commonOpts.getStoreArg());
if (uri.getDatabase() == null) {
@@ -121,7 +130,7 @@ public class NodeStoreFixtureProvider {
System.exit(1);
}
MongoConnection mongo = new MongoConnection(uri.getURI());
- closer.register(() -> mongo.close());
+ closer.register(mongo::close);
builder.setMongoDB(mongo.getDB());
} else if (commonOpts.isRDB()) {
RDBStoreOptions rdbOpts =
options.getOptionBean(RDBStoreOptions.class);