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 2014/05/27 21:47:37 UTC
svn commit: r1597860 - in /jackrabbit/oak/trunk/oak-run: README.md
src/main/java/org/apache/jackrabbit/oak/run/Main.java
Author: jukka
Date: Tue May 27 19:47:36 2014
New Revision: 1597860
URL: http://svn.apache.org/r1597860
Log:
OAK-1804: TarMK compaction
Add the 'compact' mode to oak-run. From the patch by Alex Parvulescu.
Modified:
jackrabbit/oak/trunk/oak-run/README.md
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Main.java
Modified: jackrabbit/oak/trunk/oak-run/README.md
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/README.md?rev=1597860&r1=1597859&r2=1597860&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/README.md (original)
+++ jackrabbit/oak/trunk/oak-run/README.md Tue May 27 19:47:36 2014
@@ -44,6 +44,14 @@ To start the console for a MongoMK repos
$ java -jar oak-run-*.jar console mongodb://host
+Compact
+-------
+
+The 'compact' mode runs the segment compaction operation on the provided TarMK
+repository. To start this mode, use:
+
+ $ java -jar oak-run-*.jar compact /path/to/oak/repository
+
Upgrade
-------
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=1597860&r1=1597859&r2=1597860&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 Tue May 27 19:47:36 2014
@@ -22,6 +22,7 @@ import static java.util.Arrays.asList;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
+import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
@@ -110,6 +111,9 @@ public class Main {
case DEBUG:
debug(args);
break;
+ case COMPACT:
+ compact(args);
+ break;
case SERVER:
server(URI, args);
break;
@@ -169,6 +173,35 @@ public class Main {
}
}
+ private static void compact(String[] args) throws IOException {
+ if (args.length != 1) {
+ System.err.println("usage: compact <path>");
+ System.exit(1);
+ } else {
+ File directory = new File(args[0]);
+ FileStore store = new FileStore(directory, 256, false);
+ System.out.println("Compacting " + directory);
+
+ System.out.println(" before " + Arrays.toString(directory.list()));
+ try {
+ store.gc();
+ store.flush();
+ store.close();
+ System.gc();
+
+ store = new FileStore(directory, 256, false);
+ store.gc();
+ store.flush();
+
+ System.out
+ .println(" after " + Arrays.toString(directory.list()));
+ } finally {
+ store.close();
+ }
+
+ }
+ }
+
private static void debug(String[] args) throws IOException {
if (args.length == 0) {
System.err.println("usage: debug <path> [id...]");
@@ -506,6 +539,7 @@ public class Main {
BENCHMARK("benchmark"),
CONSOLE("debug"),
DEBUG("debug"),
+ COMPACT("compact"),
SERVER("server"),
UPGRADE("upgrade"),
SCALABILITY("scalability"),