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