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 2014/08/22 15:58:48 UTC

svn commit: r1619808 - in /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment: SegmentNodeStoreService.java file/FileStore.java

Author: alexparvulescu
Date: Fri Aug 22 13:58:47 2014
New Revision: 1619808

URL: http://svn.apache.org/r1619808
Log:
OAK-2019 Compact only if needed
 - exposed pause flag via OSGi config

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java?rev=1619808&r1=1619807&r2=1619808&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeStoreService.java Fri Aug 22 13:58:47 2014
@@ -17,6 +17,7 @@
 package org.apache.jackrabbit.oak.plugins.segment;
 
 import static com.google.common.base.Preconditions.checkState;
+import static org.apache.jackrabbit.oak.commons.PropertiesUtil.toBoolean;
 import static org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.registerMBean;
 
 import java.io.Closeable;
@@ -79,6 +80,9 @@ public class SegmentNodeStoreService ext
     @Property(description="Cache size (MB)", intValue=256)
     public static final String CACHE = "cache";
 
+    @Property(description = "TarMK compaction paused flag", boolValue = true)
+    public static final String PAUSE_COMPACTION = "pauseCompaction";
+
     /**
      * Boolean value indicating a blobStore is to be used
      */
@@ -152,20 +156,18 @@ public class SegmentNodeStoreService ext
             size = System.getProperty(SIZE, "256");
         }
 
+        boolean pauseCompaction = toBoolean(lookup(context, PAUSE_COMPACTION), true);
         boolean memoryMapping = "64".equals(mode);
         if (customBlobStore) {
             log.info("Initializing SegmentNodeStore with BlobStore [{}]", blobStore);
-            store = new FileStore(
-                    blobStore,
-                    new File(directory),
-                    Integer.parseInt(size), memoryMapping);
+            store = new FileStore(blobStore, new File(directory),
+                    Integer.parseInt(size), memoryMapping)
+                    .setPauseCompaction(pauseCompaction);
         } else {
-            store = new FileStore(
-                    new File(directory),
-                    Integer.parseInt(size), memoryMapping);
+            store = new FileStore(new File(directory), Integer.parseInt(size),
+                    memoryMapping).setPauseCompaction(pauseCompaction);
         }
 
-
         delegate = new SegmentNodeStore(store);
         observerTracker = new ObserverTracker(delegate);
         observerTracker.start(context.getBundleContext());

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java?rev=1619808&r1=1619807&r2=1619808&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java Fri Aug 22 13:58:47 2014
@@ -709,8 +709,8 @@ public class FileStore implements Segmen
         return index;
     }
 
-    public void setPauseCompaction(boolean pauseCompaction) {
+    public FileStore setPauseCompaction(boolean pauseCompaction) {
         this.pauseCompaction = pauseCompaction;
+        return this;
     }
-
 }