Author: alexparvulescu
Date: Thu Sep  1 12:38:16 2016
New Revision: 1758770

URL: http://svn.apache.org/viewvc?rev=1758770&view=rev
Log:
OAK-4729 OSGi config for the size based estimation

Modified:
    
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java
    
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/compaction/SegmentGCOptions.java

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java?rev=1758770&r1=1758769&r2=1758770&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java
 Thu Sep  1 12:38:16 2016
@@ -26,9 +26,11 @@ import static org.apache.jackrabbit.oak.
 import static 
org.apache.jackrabbit.oak.osgi.OsgiUtil.lookupConfigurationThenFramework;
 import static 
org.apache.jackrabbit.oak.segment.compaction.SegmentGCOptions.FORCE_AFTER_FAIL_DEFAULT;
 import static 
org.apache.jackrabbit.oak.segment.compaction.SegmentGCOptions.GAIN_THRESHOLD_DEFAULT;
+import static 
org.apache.jackrabbit.oak.segment.compaction.SegmentGCOptions.LOCK_WAIT_TIME_DEFAULT;
 import static 
org.apache.jackrabbit.oak.segment.compaction.SegmentGCOptions.MEMORY_THRESHOLD_DEFAULT;
 import static 
org.apache.jackrabbit.oak.segment.compaction.SegmentGCOptions.PAUSE_DEFAULT;
 import static 
org.apache.jackrabbit.oak.segment.compaction.SegmentGCOptions.RETRY_COUNT_DEFAULT;
+import static 
org.apache.jackrabbit.oak.segment.compaction.SegmentGCOptions.SIZE_DELTA_ESTIMATION_DEFAULT;
 import static 
org.apache.jackrabbit.oak.segment.file.FileStoreBuilder.fileStoreBuilder;
 import static 
org.apache.jackrabbit.oak.spi.blob.osgi.SplitBlobStoreService.ONLY_STANDALONE_TARGET;
 import static 
org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.registerMBean;
@@ -223,10 +225,8 @@ public class SegmentNodeStoreService ext
     )
     public static final String COMPACTION_FORCE_AFTER_FAIL = 
"compaction.forceAfterFail";
 
-    public static final int COMPACTION_LOCK_WAIT_TIME_DEFAULT = 60;
-
     @Property(
-            intValue = COMPACTION_LOCK_WAIT_TIME_DEFAULT,
+            intValue = LOCK_WAIT_TIME_DEFAULT,
             label = "Compaction Lock Wait Time",
             description = "Number of seconds to wait for the lock for 
committing compacted changes " +
                     "respectively to wait for the exclusive write lock for 
force committing."
@@ -234,6 +234,13 @@ public class SegmentNodeStoreService ext
     public static final String COMPACTION_LOCK_WAIT_TIME = 
"compaction.lockWaitTime";
 
     @Property(
+            longValue = SIZE_DELTA_ESTIMATION_DEFAULT,
+            label = "Compaction Repository Size Delta",
+            description = "Amount of increase in repository size that will 
trigger compaction (bytes)"
+    )
+    public static final String COMPACTION_SIZE_DELTA_ESTIMATION = 
"compaction.sizeDeltaEstimation";
+
+    @Property(
             boolValue = false,
             label = "Standby Mode",
             description = "Flag indicating that this component will not 
register as a NodeStore but just as a NodeStoreProvider"
@@ -520,15 +527,16 @@ public class SegmentNodeStoreService ext
         boolean pauseCompaction = toBoolean(property(PAUSE_COMPACTION), 
PAUSE_DEFAULT);
         int retryCount = toInteger(property(COMPACTION_RETRY_COUNT), 
RETRY_COUNT_DEFAULT);
         boolean forceAfterFail = 
toBoolean(property(COMPACTION_FORCE_AFTER_FAIL), FORCE_AFTER_FAIL_DEFAULT);
-        final int lockWaitTime = 
toInteger(property(COMPACTION_LOCK_WAIT_TIME), 
COMPACTION_LOCK_WAIT_TIME_DEFAULT);
+        int lockWaitTime = toInteger(property(COMPACTION_LOCK_WAIT_TIME), 
LOCK_WAIT_TIME_DEFAULT);
 
         byte memoryThreshold = getMemoryThreshold();
         byte gainThreshold = getGainThreshold();
+        long sizeDeltaEstimation = toLong(COMPACTION_SIZE_DELTA_ESTIMATION, 
SIZE_DELTA_ESTIMATION_DEFAULT);
 
-        SegmentGCOptions segmentGCOptions = new SegmentGCOptions(
-                pauseCompaction, memoryThreshold, gainThreshold, retryCount, 
forceAfterFail, lockWaitTime);
-        segmentGCOptions.setForceAfterFail(forceAfterFail);
-        return segmentGCOptions;
+        return new SegmentGCOptions(pauseCompaction, memoryThreshold,
+                gainThreshold, retryCount, forceAfterFail, lockWaitTime)
+                .setForceAfterFail(forceAfterFail).setGcSizeDeltaEstimation(
+                        sizeDeltaEstimation);
     }
 
     private boolean registerSegmentNodeStore() throws IOException {

Modified: 
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/compaction/SegmentGCOptions.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/compaction/SegmentGCOptions.java?rev=1758770&r1=1758769&r2=1758770&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/compaction/SegmentGCOptions.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/compaction/SegmentGCOptions.java
 Thu Sep  1 12:38:16 2016
@@ -54,13 +54,18 @@ public class SegmentGCOptions {
     /**
      * Default value for {@link #getLockWaitTime()}
      */
-    public static final int LOCK_WAIT_TIME_DEFAULT = 60000;
+    public static final int LOCK_WAIT_TIME_DEFAULT = 60;
 
     /**
      * Default value for {@link #getRetainedGenerations()}
      */
     public static final int RETAINED_GENERATIONS_DEFAULT = 2;
 
+    /**
+     * Default value for {@link #getGcSizeDeltaEstimation()}
+     */
+    public static final long SIZE_DELTA_ESTIMATION_DEFAULT = -1;
+
     private boolean paused = PAUSE_DEFAULT;
 
     private int memoryThreshold = MEMORY_THRESHOLD_DEFAULT;
@@ -85,7 +90,8 @@ public class SegmentGCOptions {
             100 * 1024 * 1024);
 
     private long gcSizeDeltaEstimation = Long.getLong(
-            "oak.segment.compaction.gcSizeDeltaEstimation", -1);
+            "oak.segment.compaction.gcSizeDeltaEstimation",
+            SIZE_DELTA_ESTIMATION_DEFAULT);
 
     public SegmentGCOptions(boolean paused, int memoryThreshold, int 
gainThreshold,
                             int retryCount, boolean forceAfterFail, int 
lockWaitTime) {


Reply via email to