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) {
