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 ju...@apache.org on 2013/02/27 11:28:54 UTC

svn commit: r1450713 - in /jackrabbit/oak/trunk: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/ oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/

Author: jukka
Date: Wed Feb 27 10:28:54 2013
New Revision: 1450713

URL: http://svn.apache.org/r1450713
Log:
OAK-641: Improved benchmark tooling

Allow the segment cache size to be explicitly specified

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/MongoStore.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/fixture/OakRepositoryFixture.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/MongoStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/MongoStore.java?rev=1450713&r1=1450712&r2=1450713&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/MongoStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/MongoStore.java Wed Feb 27 10:28:54 2013
@@ -53,13 +53,13 @@ public class MongoStore implements Segme
         }
     }
 
-    public MongoStore(DB db) {
-        this(db, new SegmentCache());
+    public MongoStore(DB db, long cacheSize) {
+        this(db, new SegmentCache(cacheSize));
     }
 
 
-    public MongoStore(Mongo mongo) {
-        this(mongo.getDB("Oak"));
+    public MongoStore(Mongo mongo, long cacheSize) {
+        this(mongo.getDB("Oak"), cacheSize);
     }
 
     @Override

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=1450713&r1=1450712&r2=1450713&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 Wed Feb 27 10:28:54 2013
@@ -34,12 +34,16 @@ import com.google.common.collect.Sets;
 
 public class BenchmarkRunner {
 
+    private static final long MB = 1024 * 1024;
+
     public static void main(String[] args) throws Exception {
         OptionParser parser = new OptionParser();
         OptionSpec<String> host = parser.accepts("host", "MongoDB host")
                 .withRequiredArg().defaultsTo("localhost");
         OptionSpec<Integer> port = parser.accepts("port", "MongoDB port")
                 .withRequiredArg().ofType(Integer.class).defaultsTo(27017);
+        OptionSpec<Integer> cache = parser.accepts("cache", "cache size (MB)")
+                .withRequiredArg().ofType(Integer.class).defaultsTo(100);
         OptionSpec<File> wikipedia =
                 parser.accepts("wikipedia", "Wikipedia dump")
                 .withRequiredArg().ofType(File.class);
@@ -50,7 +54,9 @@ public class BenchmarkRunner {
                 OakRepositoryFixture.getMemory(),
                 OakRepositoryFixture.getDefault(),
                 OakRepositoryFixture.getMongo(host.value(options), port.value(options)),
-                OakRepositoryFixture.getSegment(host.value(options), port.value(options))
+                OakRepositoryFixture.getSegment(
+                        host.value(options), port.value(options),
+                        cache.value(options) * MB)
         };
         Benchmark[] allBenchmarks = new Benchmark[] {
             new LoginTest(),

Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakRepositoryFixture.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakRepositoryFixture.java?rev=1450713&r1=1450712&r2=1450713&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakRepositoryFixture.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakRepositoryFixture.java Wed Feb 27 10:28:54 2013
@@ -105,7 +105,8 @@ public abstract class OakRepositoryFixtu
         };
     }
 
-    public static RepositoryFixture getSegment(final String host, final int port) {
+    public static RepositoryFixture getSegment(
+            final String host, final int port, final long cacheSize) {
         return new OakRepositoryFixture("Oak-Segment") {
             private Mongo mongo;
             @Override
@@ -113,7 +114,8 @@ public abstract class OakRepositoryFixtu
                 Repository[] cluster = new Repository[n];
                 mongo = new Mongo(host, port);
                 for (int i = 0; i < cluster.length; i++) {
-                    SegmentStore store = new MongoStore(mongo.getDB(unique));
+                    SegmentStore store =
+                            new MongoStore(mongo.getDB(unique), cacheSize);
                     Oak oak = new Oak(new SegmentNodeStore(store));
                     cluster[i] = new Jcr(oak).createRepository();
                 }