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 2017/08/31 14:10:04 UTC
svn commit: r1806796 -
/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/benchmark/BenchmarkBase.java
Author: frm
Date: Thu Aug 31 14:10:03 2017
New Revision: 1806796
URL: http://svn.apache.org/viewvc?rev=1806796&view=rev
Log:
OAK-6602 - Simplify standby resources initialization in BenchmarkBase
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/benchmark/BenchmarkBase.java
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/benchmark/BenchmarkBase.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/benchmark/BenchmarkBase.java?rev=1806796&r1=1806795&r2=1806796&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/benchmark/BenchmarkBase.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/benchmark/BenchmarkBase.java Thu Aug 31 14:10:03 2017
@@ -20,6 +20,7 @@ package org.apache.jackrabbit.oak.segmen
import static org.apache.jackrabbit.oak.segment.file.FileStoreBuilder.fileStoreBuilder;
+import java.io.Closeable;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
@@ -31,69 +32,84 @@ import com.google.common.io.Closer;
import org.apache.commons.io.FileUtils;
import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser;
import org.apache.jackrabbit.oak.segment.file.FileStore;
-import org.apache.jackrabbit.oak.segment.standby.client.StandbyClientSync;
import org.apache.jackrabbit.oak.stats.DefaultStatisticsProvider;
class BenchmarkBase {
- private static File createTmpTargetDir(String name) throws IOException {
- return Files.createTempDirectory(Paths.get("target"), name).toFile();
- }
+ private static class TemporaryFolder implements Closeable {
- private Closer closer;
+ private final File folder;
- FileStore primaryStore;
-
- FileStore standbyStore;
+ TemporaryFolder(String prefix) throws IOException {
+ folder = Files.createTempDirectory(Paths.get("target"), prefix).toFile();
+ }
- void setUpServerAndClient() throws Exception {
- closer = Closer.create();
+ File toFile() {
+ return folder;
+ }
- File primaryDirectory = createTmpTargetDir("primary-");
- closer.register(() -> FileUtils.deleteDirectory(primaryDirectory));
+ @Override
+ public void close() throws IOException {
+ FileUtils.deleteDirectory(folder);
+ }
- ScheduledExecutorService primaryExecutor = Executors.newSingleThreadScheduledExecutor();
- closer.register(new ExecutorCloser(primaryExecutor));
+ }
- primaryStore = setupPrimary(primaryDirectory, primaryExecutor);
- closer.register(primaryStore);
+ private static class TemporaryExecutor implements Closeable {
- File standbyDirectory = createTmpTargetDir("standby-");
- closer.register(() -> FileUtils.deleteDirectory(standbyDirectory));
+ private final ScheduledExecutorService executor;
- ScheduledExecutorService standbyExecutor = Executors.newSingleThreadScheduledExecutor();
- closer.register(new ExecutorCloser(standbyExecutor));
+ TemporaryExecutor() {
+ executor = Executors.newSingleThreadScheduledExecutor();
+ }
- standbyStore = setupStandby(standbyDirectory, standbyExecutor);
- closer.register(standbyStore);
- }
+ ScheduledExecutorService toScheduledExecutorService() {
+ return executor;
+ }
- void closeServerAndClient() {
- try {
- closer.close();
- } catch (IOException e) {
- e.printStackTrace(System.err);
+ @Override
+ public void close() throws IOException {
+ new ExecutorCloser(executor).close();
}
+
}
private static FileStore newFileStore(File directory, ScheduledExecutorService executor) throws Exception {
return fileStoreBuilder(directory)
- .withMaxFileSize(1)
- .withMemoryMapping(false)
- .withNodeDeduplicationCacheSize(1)
- .withSegmentCacheSize(0)
- .withStringCacheSize(0)
- .withTemplateCacheSize(0)
- .withStatisticsProvider(new DefaultStatisticsProvider(executor))
- .build();
+ .withMaxFileSize(1)
+ .withMemoryMapping(false)
+ .withNodeDeduplicationCacheSize(1)
+ .withSegmentCacheSize(0)
+ .withStringCacheSize(0)
+ .withTemplateCacheSize(0)
+ .withStatisticsProvider(new DefaultStatisticsProvider(executor))
+ .build();
}
- private FileStore setupPrimary(File directory, ScheduledExecutorService executor) throws Exception {
- return newFileStore(directory, executor);
+ private Closer closer;
+
+ FileStore primaryStore;
+
+ FileStore standbyStore;
+
+ void setUpServerAndClient() throws Exception {
+ closer = Closer.create();
+
+ File primaryDirectory = closer.register(new TemporaryFolder("primary-")).toFile();
+ ScheduledExecutorService primaryExecutor = closer.register(new TemporaryExecutor()).toScheduledExecutorService();
+ primaryStore = closer.register(newFileStore(primaryDirectory, primaryExecutor));
+
+ File standbyDirectory = closer.register(new TemporaryFolder("standby-")).toFile();
+ ScheduledExecutorService standbyExecutor = closer.register(new TemporaryExecutor()).toScheduledExecutorService();
+ standbyStore = closer.register(newFileStore(standbyDirectory, standbyExecutor));
}
- private FileStore setupStandby(File directory, ScheduledExecutorService executor) throws Exception {
- return newFileStore(directory, executor);
+ void closeServerAndClient() {
+ try {
+ closer.close();
+ } catch (IOException e) {
+ e.printStackTrace(System.err);
+ }
}
}