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 al...@apache.org on 2015/09/09 16:06:31 UTC
svn commit: r1702019 -
/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java
Author: alexparvulescu
Date: Wed Sep 9 14:06:31 2015
New Revision: 1702019
URL: http://svn.apache.org/r1702019
Log:
OAK-3379 Oak run should use InMemoryCompactionMap by default
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java
Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java?rev=1702019&r1=1702018&r2=1702019&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java Wed Sep 9 14:06:31 2015
@@ -53,6 +53,7 @@ import java.util.regex.Pattern;
import javax.jcr.Repository;
import com.google.common.base.Joiner;
+import com.google.common.base.Stopwatch;
import com.google.common.collect.Maps;
import com.google.common.collect.Queues;
import com.google.common.io.Closer;
@@ -65,6 +66,7 @@ import joptsimple.OptionParser;
import joptsimple.OptionSet;
import joptsimple.OptionSpec;
+import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.time.DateUtils;
import org.apache.jackrabbit.core.RepositoryContext;
import org.apache.jackrabbit.core.config.RepositoryConfig;
@@ -72,6 +74,7 @@ import org.apache.jackrabbit.oak.Oak;
import org.apache.jackrabbit.oak.api.ContentRepository;
import org.apache.jackrabbit.oak.benchmark.BenchmarkRunner;
import org.apache.jackrabbit.oak.checkpoint.Checkpoints;
+import org.apache.jackrabbit.oak.commons.IOUtils;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.commons.json.JsopBuilder;
import org.apache.jackrabbit.oak.console.Console;
@@ -474,9 +477,16 @@ public final class Main {
System.err.println("Invalid FileStore directory " + args[0]);
System.exit(1);
} else {
+ boolean persistCM = Boolean
+ .getBoolean("tar.PersistCompactionMap");
+ Stopwatch watch = Stopwatch.createStarted();
File directory = new File(args[0]);
System.out.println("Compacting " + directory);
System.out.println(" before " + Arrays.toString(directory.list()));
+ long sizeBefore = FileUtils.sizeOfDirectory(directory);
+ System.out.println(" size "
+ + IOUtils.humanReadableByteCount(sizeBefore) + " (" + sizeBefore
+ + " bytes)");
System.out.println(" -> compacting");
FileStore store = new FileStore(directory, 256, TAR_STORAGE_MEMORY_MAPPED);
@@ -495,6 +505,7 @@ public final class Main {
}
};
compactionStrategy.setOfflineCompaction(true);
+ compactionStrategy.setPersistCompactionMap(persistCM);
store.setCompactionStrategy(compactionStrategy);
store.compact();
} finally {
@@ -508,8 +519,15 @@ public final class Main {
} finally {
store.close();
}
-
- System.out.println(" after " + Arrays.toString(directory.list()));
+ watch.stop();
+ System.out.println(" after "
+ + Arrays.toString(directory.list()));
+ long sizeAfter = FileUtils.sizeOfDirectory(directory);
+ System.out.println(" size "
+ + IOUtils.humanReadableByteCount(sizeAfter) + " (" + sizeAfter
+ + " bytes)");
+ System.out.println(" duration " + watch.toString() + " ("
+ + watch.elapsed(TimeUnit.SECONDS) + "s).");
}
}