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 fr...@apache.org on 2016/05/19 12:49:57 UTC
svn commit: r1744563 - in
/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak:
benchmark/BenchmarkRunner.java fixture/OakFixture.java
fixture/OakRepositoryFixture.java fixture/SegmentTarFixture.java
Author: frm
Date: Thu May 19 12:49:57 2016
New Revision: 1744563
URL: http://svn.apache.org/viewvc?rev=1744563&view=rev
Log:
OAK-4328 - Add a fixture to choose between segment store implementations in the "benchmark" command
Added:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/SegmentTarFixture.java (with props)
Modified:
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/OakFixture.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakRepositoryFixture.java
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=1744563&r1=1744562&r2=1744563&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 Thu May 19 12:49:57 2016
@@ -166,6 +166,8 @@ public class BenchmarkRunner {
base.value(options), 256, cacheSize, mmap.value(options)),
OakRepositoryFixture.getTarWithBlobStore(
base.value(options), 256, cacheSize, mmap.value(options)),
+ OakRepositoryFixture.getSegmentTar(base.value(options), 256, cacheSize, mmap.value(options)),
+ OakRepositoryFixture.getSegmentTarWithBlobStore(base.value(options), 256, cacheSize, mmap.value(options)),
OakRepositoryFixture.getRDB(rdbjdbcuri.value(options), rdbjdbcuser.value(options),
rdbjdbcpasswd.value(options), rdbjdbctableprefix.value(options),
dropDBAfterTest.value(options), cacheSize * MB) };
Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java?rev=1744563&r1=1744562&r2=1744563&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java Thu May 19 12:49:57 2016
@@ -52,6 +52,10 @@ public abstract class OakFixture {
public static final String OAK_TAR = "Oak-Tar";
public static final String OAK_TAR_FDS = "Oak-Tar-FDS";
+ public static final String OAK_SEGMENT_TAR = "Oak-Segment-Tar";
+
+ public static final String OAK_SEGMENT_TAR_FDS = "Oak-Segment-Tar-FDS";
+
private final String name;
protected final String unique;
@@ -324,6 +328,10 @@ public abstract class OakFixture {
return new SegmentFixture(name, base, maxFileSizeMB, cacheSizeMB, memoryMapping, useBlobStore);
}
+ public static OakFixture getSegmentTar(final String name, final File base, final int maxFileSizeMB, final int cacheSizeMB, final boolean memoryMapping, final boolean useBlobStore) {
+ return new SegmentTarFixture(name, base, maxFileSizeMB, cacheSizeMB, memoryMapping, useBlobStore);
+ }
+
public static class SegmentFixture extends OakFixture {
private FileStore[] stores;
private BlobStoreFixture[] blobStoreFixtures = new BlobStoreFixture[0];
@@ -401,9 +409,9 @@ public abstract class OakFixture {
return stores;
}
}
-
- private static Oak newOak(NodeStore nodeStore) {
- return new Oak(nodeStore).with(ManagementFactory.getPlatformMBeanServer());
+
+ static Oak newOak(NodeStore nodeStore) {
+ return new Oak(nodeStore).with(ManagementFactory.getPlatformMBeanServer());
}
}
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=1744563&r1=1744562&r2=1744563&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 Thu May 19 12:49:57 2016
@@ -17,6 +17,7 @@
package org.apache.jackrabbit.oak.fixture;
import java.io.File;
+
import javax.jcr.Repository;
import org.apache.jackrabbit.api.JackrabbitRepository;
@@ -96,6 +97,13 @@ public class OakRepositoryFixture implem
return new OakRepositoryFixture(OakFixture.getTar(OakFixture.OAK_TAR_FDS,base, maxFileSizeMB, cacheSizeMB, memoryMapping, true));
}
+ public static RepositoryFixture getSegmentTar(File base, int maxFileSizeMB, int cacheSizeMB, boolean memoryMapping) {
+ return new OakRepositoryFixture(OakFixture.getSegmentTar(OakFixture.OAK_SEGMENT_TAR, base, maxFileSizeMB, cacheSizeMB, memoryMapping, false));
+ }
+
+ public static RepositoryFixture getSegmentTarWithBlobStore(File base, int maxFileSizeMB, int cacheSizeMB, boolean memoryMapping) {
+ return new OakRepositoryFixture(OakFixture.getSegmentTar(OakFixture.OAK_SEGMENT_TAR_FDS, base, maxFileSizeMB, cacheSizeMB, memoryMapping, true));
+ }
private final OakFixture oakFixture;
private Repository[] cluster;
Added: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/SegmentTarFixture.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/SegmentTarFixture.java?rev=1744563&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/SegmentTarFixture.java (added)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/SegmentTarFixture.java Thu May 19 12:49:57 2016
@@ -0,0 +1,113 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jackrabbit.oak.fixture;
+
+import java.io.File;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.jackrabbit.oak.Oak;
+import org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState;
+import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
+import org.apache.jackrabbit.oak.segment.SegmentStore;
+import org.apache.jackrabbit.oak.segment.file.FileStore;
+import org.apache.jackrabbit.oak.spi.blob.BlobStore;
+
+class SegmentTarFixture extends OakFixture {
+
+ private FileStore[] stores;
+
+ private BlobStoreFixture[] blobStoreFixtures = new BlobStoreFixture[0];
+
+ private final File base;
+
+ private final int maxFileSizeMB;
+
+ private final int cacheSizeMB;
+
+ private final boolean memoryMapping;
+
+ private final boolean useBlobStore;
+
+ public SegmentTarFixture(String name, File base, int maxFileSizeMB, int cacheSizeMB, boolean memoryMapping, boolean useBlobStore) {
+ super(name);
+ this.base = base;
+ this.maxFileSizeMB = maxFileSizeMB;
+ this.cacheSizeMB = cacheSizeMB;
+ this.memoryMapping = memoryMapping;
+ this.useBlobStore = useBlobStore;
+ }
+
+ @Override
+ public Oak getOak(int clusterId) throws Exception {
+ FileStore fs = FileStore.builder(base)
+ .withMaxFileSize(maxFileSizeMB)
+ .withCacheSize(cacheSizeMB)
+ .withMemoryMapping(memoryMapping)
+ .build();
+ return newOak(SegmentNodeStore.builder(fs).build());
+ }
+
+ @Override
+ public Oak[] setUpCluster(int n) throws Exception {
+ Oak[] cluster = new Oak[n];
+ stores = new FileStore[cluster.length];
+ if (useBlobStore) {
+ blobStoreFixtures = new BlobStoreFixture[cluster.length];
+ }
+
+ for (int i = 0; i < cluster.length; i++) {
+ BlobStore blobStore = null;
+ if (useBlobStore) {
+ blobStoreFixtures[i] = BlobStoreFixture.create(base, true);
+ blobStore = blobStoreFixtures[i].setUp();
+ }
+
+ FileStore.Builder builder = FileStore.builder(new File(base, unique));
+ if (blobStore != null) {
+ builder.withBlobStore(blobStore);
+ }
+ stores[i] = builder.withRoot(EmptyNodeState.EMPTY_NODE)
+ .withMaxFileSize(maxFileSizeMB)
+ .withCacheSize(cacheSizeMB)
+ .withMemoryMapping(memoryMapping)
+ .build();
+ cluster[i] = newOak(SegmentNodeStore.builder(stores[i]).build());
+ }
+ return cluster;
+ }
+
+ @Override
+ public void tearDownCluster() {
+ for (SegmentStore store : stores) {
+ store.close();
+ }
+ for (BlobStoreFixture blobStore : blobStoreFixtures) {
+ blobStore.tearDown();
+ }
+ FileUtils.deleteQuietly(new File(base, unique));
+ }
+
+ public BlobStoreFixture[] getBlobStoreFixtures() {
+ return blobStoreFixtures;
+ }
+
+ public FileStore[] getStores() {
+ return stores;
+ }
+
+}
Propchange: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/SegmentTarFixture.java
------------------------------------------------------------------------------
svn:eol-style = native