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).");
         }
     }