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 2016/03/15 08:48:47 UTC
svn commit: r1735026 - in
/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark:
AddMemberTest.java AddMembersTest.java BenchmarkRunner.java
RemoveMemberTest.java RemoveMembersTest.java
Author: angela
Date: Tue Mar 15 07:48:47 2016
New Revision: 1735026
URL: http://svn.apache.org/viewvc?rev=1735026&view=rev
Log:
OAK-4118 : Benchmarks for Membership Operations (enhance AddMember|RemoveMember tests to allow for 'batchsize' to reduce number of save-calls)
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/AddMemberTest.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/AddMembersTest.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/RemoveMemberTest.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/RemoveMembersTest.java
Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/AddMemberTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/AddMemberTest.java?rev=1735026&r1=1735025&r2=1735026&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/AddMemberTest.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/AddMemberTest.java Tue Mar 15 07:48:47 2016
@@ -33,6 +33,7 @@ import org.apache.jackrabbit.oak.spi.xml
* following parameters can be used to run the benchmark:
*
* - numberOfMembers : the number of members that should be added in the test run
+ * - batchSize : the number of users to be added as membes before {@link Session#save()} is called.
*
* In contrast to {@link AddMembersTest}, this benchmark will always call
* {@link Group#addMember(Authorizable)}.
@@ -41,8 +42,8 @@ public class AddMemberTest extends AddMe
private final List<String> userPaths;
- public AddMemberTest(int numberOfMembers) {
- super(numberOfMembers, 1, ImportBehavior.NAME_ABORT);
+ public AddMemberTest(int numberOfMembers, int batchSize) {
+ super(numberOfMembers, batchSize, ImportBehavior.NAME_ABORT);
userPaths = new ArrayList<String>(numberOfMembers);
}
@@ -56,10 +57,16 @@ public class AddMemberTest extends AddMe
@Override
protected void addMembers(@Nonnull UserManager userManager, @Nonnull Group group, @Nonnull Session s) throws Exception {
+ int j = 1;
for (int i = 0; i <= numberOfMembers; i++) {
String userPath = userPaths.get(random.nextInt(numberOfMembers));
group.addMember(userManager.getAuthorizableByPath(userPath));
- s.save();
+ if (j == batchSize) {
+ s.save();
+ j = 1;
+ } else {
+ j++;
+ }
}
}
}
Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/AddMembersTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/AddMembersTest.java?rev=1735026&r1=1735025&r2=1735026&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/AddMembersTest.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/AddMembersTest.java Tue Mar 15 07:48:47 2016
@@ -68,7 +68,7 @@ public class AddMembersTest extends Abst
final Random random = new Random();
final int numberOfMembers;
- private final int batchSize;
+ final int batchSize;
private final String importBehavior;
private final List<String> groupPaths = new ArrayList(GROUP_CNT);
Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java?rev=1735026&r1=1735025&r2=1735026&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java Tue Mar 15 07:48:47 2016
@@ -327,14 +327,16 @@ public class BenchmarkRunner {
batchSize.value(options),
importBehavior.value(options)),
new AddMemberTest(
- numberOfUsers.value(options)),
+ numberOfUsers.value(options),
+ batchSize.value(options)),
// benchmarks removing multiple or single members
new RemoveMembersTest(
numberOfUsers.value(options),
batchSize.value(options)),
new RemoveMemberTest(
- numberOfUsers.value(options)),
+ numberOfUsers.value(options),
+ batchSize.value(options)),
// benchmark testing isMember/isDeclared member; each user only being member of 1 group
new IsMemberTest(
Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/RemoveMemberTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/RemoveMemberTest.java?rev=1735026&r1=1735025&r2=1735026&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/RemoveMemberTest.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/RemoveMemberTest.java Tue Mar 15 07:48:47 2016
@@ -41,8 +41,8 @@ public class RemoveMemberTest extends Re
private final List<String> userPaths;
- public RemoveMemberTest(int numberOfMembers) {
- super(numberOfMembers, 1);
+ public RemoveMemberTest(int numberOfMembers, int batchSize) {
+ super(numberOfMembers, batchSize);
userPaths = new ArrayList<String>(numberOfMembers);
}
@@ -55,10 +55,16 @@ public class RemoveMemberTest extends Re
}
protected void removeMembers(@Nonnull UserManager userManger, @Nonnull Group group, @Nonnull Session s) throws Exception {
+ int j = 1;
for (int i = 0; i <= numberOfMembers; i++) {
Authorizable member = userManger.getAuthorizable(USER + random.nextInt(numberOfMembers));
if (group.removeMember(member)) {
- s.save();
+ if (j == batchSize) {
+ s.save();
+ j = 1;
+ } else {
+ j++;
+ }
}
}
}
Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/RemoveMembersTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/RemoveMembersTest.java?rev=1735026&r1=1735025&r2=1735026&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/RemoveMembersTest.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/RemoveMembersTest.java Tue Mar 15 07:48:47 2016
@@ -67,7 +67,7 @@ public class RemoveMembersTest extends A
final Random random = new Random();
final int numberOfMembers;
- private final int batchSize;
+ final int batchSize;
private final List<String> groupPaths = new ArrayList(GROUP_CNT);