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 an...@apache.org on 2019/10/31 14:52:08 UTC
svn commit: r1869220 - in
/jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark:
BenchmarkRunner.java ReadDeepTreeTest.java
authorization/permission/EagerCacheSizeTest.java
Author: angela
Date: Thu Oct 31 14:52:08 2019
New Revision: 1869220
URL: http://svn.apache.org/viewvc?rev=1869220&view=rev
Log:
OAK-8730 : Add option for repeated read to ReadDeepTreeTest
Modified:
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/ReadDeepTreeTest.java
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authorization/permission/EagerCacheSizeTest.java
Modified: jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java?rev=1869220&r1=1869219&r2=1869220&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java (original)
+++ jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java Thu Oct 31 14:52:08 2019
@@ -17,6 +17,8 @@
package org.apache.jackrabbit.oak.benchmark;
import static java.util.Arrays.asList;
+import static org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.DEFAULT_ITEMS_TD_READ;
+import static org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.DEFAULT_REPEATED_READ;
import java.io.File;
import java.io.PrintStream;
@@ -155,7 +157,9 @@ public class BenchmarkRunner {
OptionSpec<String> importBehavior = parser.accepts("importBehavior", "Protected Item Import Behavior")
.withOptionalArg().ofType(String.class).defaultsTo(ImportBehavior.NAME_BESTEFFORT);
OptionSpec<Integer> itemsToRead = parser.accepts("itemsToRead", "Number of items to read")
- .withRequiredArg().ofType(Integer.class).defaultsTo(1000);
+ .withRequiredArg().ofType(Integer.class).defaultsTo(DEFAULT_ITEMS_TD_READ);
+ OptionSpec<Integer> repeatedRead = parser.accepts("repeatedRead", "Number of repetitions")
+ .withRequiredArg().ofType(Integer.class).defaultsTo(DEFAULT_REPEATED_READ);
OptionSpec<Integer> concurrency = parser.accepts("concurrency", "Number of test threads.")
.withRequiredArg().ofType(Integer.class).withValuesSeparatedBy(',');
OptionSpec<Boolean> report = parser.accepts("report", "Whether to output intermediate results")
@@ -382,6 +386,7 @@ public class BenchmarkRunner {
useAggregationFilter.value(options),
report.value(options)),
new EagerCacheSizeTest(itemsToRead.value(options),
+ repeatedRead.value(options),
numberOfInitialAce.value(options),
numberOfUsers.value(options),
cacheSize,
Modified: jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/ReadDeepTreeTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/ReadDeepTreeTest.java?rev=1869220&r1=1869219&r2=1869220&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/ReadDeepTreeTest.java (original)
+++ jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/ReadDeepTreeTest.java Thu Oct 31 14:52:08 2019
@@ -43,8 +43,12 @@ import org.jetbrains.annotations.NotNull
*/
public class ReadDeepTreeTest extends AbstractTest {
+ public static final int DEFAULT_ITEMS_TD_READ = 1000;
+ public static final int DEFAULT_REPEATED_READ = 1;
+
protected final boolean runAsAdmin;
protected final int itemsToRead;
+ protected final int repeatedRead;
protected final boolean doReport;
protected final boolean singleSession;
@@ -61,10 +65,15 @@ public class ReadDeepTreeTest extends Ab
}
public ReadDeepTreeTest(boolean runAsAdmin, int itemsToRead, boolean doReport, boolean singleSession) {
+ this(runAsAdmin, itemsToRead, doReport, singleSession, DEFAULT_REPEATED_READ);
+ }
+
+ public ReadDeepTreeTest(boolean runAsAdmin, int itemsToRead, boolean doReport, boolean singleSession, int repeatedRead) {
this.runAsAdmin = runAsAdmin;
this.itemsToRead = itemsToRead;
this.doReport = doReport;
this.singleSession = singleSession;
+ this.repeatedRead = repeatedRead;
}
@Override
@@ -140,26 +149,14 @@ public class ReadDeepTreeTest extends Ab
logout = true;
}
try {
- int nodeCnt = 0;
- int propertyCnt = 0;
- int noAccess = 0;
+ Cnt accessCnt = new Cnt();
long start = System.currentTimeMillis();
for (int i = 0; i < cnt; i++) {
- String path = getRandom(allPaths);
- if (testSession.itemExists(path)) {
- Item item = testSession.getItem(path);
- if (item.isNode()) {
- nodeCnt++;
- } else {
- propertyCnt++;
- }
- } else {
- noAccess++;
- }
+ readItem(testSession, getRandom(allPaths), accessCnt);
}
long end = System.currentTimeMillis();
if (doReport) {
- System.out.println("Session " + testSession.getUserID() + " reading " + (cnt-noAccess) + " (Nodes: "+ nodeCnt +"; Properties: "+propertyCnt+") completed in " + (end - start));
+ System.out.println("Session " + testSession.getUserID() + " reading " + (cnt-accessCnt.noAccess) + " (Nodes: "+ accessCnt.nodeCnt +"; Properties: "+accessCnt.propertyCnt+") completed in " + (end - start));
}
} finally {
if (logout) {
@@ -168,6 +165,21 @@ public class ReadDeepTreeTest extends Ab
}
}
+ private void readItem(Session testSession, String path, Cnt cnt) throws RepositoryException {
+ for (int i = 0; i < repeatedRead; i++) {
+ if (testSession.itemExists(path)) {
+ Item item = testSession.getItem(path);
+ if (item.isNode()) {
+ cnt.nodeCnt++;
+ } else {
+ cnt.propertyCnt++;
+ }
+ } else {
+ cnt.noAccess++;
+ }
+ }
+ }
+
protected Session getTestSession() {
if (runAsAdmin) {
return loginWriter();
@@ -213,4 +225,10 @@ public class ReadDeepTreeTest extends Ab
int index = (int) Math.floor(strings.size() * Math.random());
return strings.get(index);
}
+
+ private static final class Cnt {
+ private int nodeCnt = 0;
+ private int propertyCnt = 0;
+ private int noAccess = 0;
+ }
}
Modified: jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authorization/permission/EagerCacheSizeTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authorization/permission/EagerCacheSizeTest.java?rev=1869220&r1=1869219&r2=1869220&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authorization/permission/EagerCacheSizeTest.java (original)
+++ jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/authorization/permission/EagerCacheSizeTest.java Thu Oct 31 14:52:08 2019
@@ -66,8 +66,8 @@ public class EagerCacheSizeTest extends
private final List<String> nodePaths = new ArrayList<>();
private Subject subject;
- public EagerCacheSizeTest(int itemsToRead, int numberOfACEs, int subjectSize, long eagerCacheSize, boolean doReport) {
- super(false, itemsToRead, doReport, false);
+ public EagerCacheSizeTest(int itemsToRead, int repeatedRead, int numberOfACEs, int subjectSize, long eagerCacheSize, boolean doReport) {
+ super(false, itemsToRead, doReport, false, repeatedRead);
this.numberOfACEs = numberOfACEs;
this.subjectSize = subjectSize;
this.eagerCacheSize = eagerCacheSize;