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 to...@apache.org on 2017/10/03 13:17:14 UTC
svn commit: r1811005 -
/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/CommitMitigatingTieredMergePolicy.java
Author: tommaso
Date: Tue Oct 3 13:17:13 2017
New Revision: 1811005
URL: http://svn.apache.org/viewvc?rev=1811005&view=rev
Log:
OAK-5192 - fixed javadoc
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/CommitMitigatingTieredMergePolicy.java
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/CommitMitigatingTieredMergePolicy.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/CommitMitigatingTieredMergePolicy.java?rev=1811005&r1=1811004&r2=1811005&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/CommitMitigatingTieredMergePolicy.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/CommitMitigatingTieredMergePolicy.java Tue Oct 3 13:17:13 2017
@@ -80,7 +80,12 @@ public class CommitMitigatingTieredMerge
/** Maximum number of segments to be merged at a time
* during "normal" merging. For explicit merging (eg,
* forceMerge or forceMergeDeletes was called), see {@link
- * #setMaxMergeAtOnceExplicit}. Default is 10. */
+ * #setMaxMergeAtOnceExplicit}. Default is 10.
+ *
+ * @param v the max no. of merges
+ * @return this merge policy instance
+ *
+ **/
public CommitMitigatingTieredMergePolicy setMaxMergeAtOnce(int v) {
if (v < 2) {
throw new IllegalArgumentException("maxMergeAtOnce must be > 1 (got " + v + ")");
@@ -89,6 +94,12 @@ public class CommitMitigatingTieredMerge
return this;
}
+ /**
+ * set the maximum no. of docs per sec accepted for a merge to happen
+ *
+ * @param maxCommitRate maxCommitRate maximum commit rate (docs/sec)
+ * @return this merge policy instance
+ */
public CommitMitigatingTieredMergePolicy setMaxCommitRateDocs(double maxCommitRate) {
this.maxCommitRateDocs = maxCommitRate;
return this;
@@ -96,6 +107,7 @@ public class CommitMitigatingTieredMerge
/** Returns the current maxMergeAtOnce setting.
*
+ * @return the max merge at once that can be performed
* @see #setMaxMergeAtOnce */
public int getMaxMergeAtOnce() {
return maxMergeAtOnce;
@@ -105,7 +117,11 @@ public class CommitMitigatingTieredMerge
// if user calls IW.maybeMerge "explicitly"
/** Maximum number of segments to be merged at a time,
- * during forceMerge or forceMergeDeletes. Default is 30. */
+ * during forceMerge or forceMergeDeletes. Default is 30.
+ *
+ * @param v the no. of max merges
+ * @return this merge policy instance
+ **/
public CommitMitigatingTieredMergePolicy setMaxMergeAtOnceExplicit(int v) {
if (v < 2) {
throw new IllegalArgumentException("maxMergeAtOnceExplicit must be > 1 (got " + v + ")");
@@ -115,6 +131,7 @@ public class CommitMitigatingTieredMerge
}
/** Returns the current maxMergeAtOnceExplicit setting.
+ * @return the maxMergeAtOnceExplicit value
*
* @see #setMaxMergeAtOnceExplicit */
public int getMaxMergeAtOnceExplicit() {
@@ -125,7 +142,11 @@ public class CommitMitigatingTieredMerge
* normal merging. This setting is approximate: the
* estimate of the merged segment size is made by summing
* sizes of to-be-merged segments (compensating for
- * percent deleted docs). Default is 5 GB. */
+ * percent deleted docs). Default is 5 GB.
+ *
+ * @param v the maximum segment size in MB
+ * @return this merge policy instance
+ **/
public CommitMitigatingTieredMergePolicy setMaxMergedSegmentMB(double v) {
if (v < 0.0) {
throw new IllegalArgumentException("maxMergedSegmentMB must be >=0 (got " + v + ")");
@@ -137,6 +158,8 @@ public class CommitMitigatingTieredMerge
/** Returns the current maxMergedSegmentMB setting.
*
+ * @return the max merged segment size in MB
+ *
* @see #getMaxMergedSegmentMB */
public double getMaxMergedSegmentMB() {
return maxMergedSegmentBytes / 1024 / 1024.;
@@ -148,7 +171,11 @@ public class CommitMitigatingTieredMerge
* be careful not to go so high that way too much merging
* takes place; a value of 3.0 is probably nearly too
* high. A value of 0.0 means deletions don't impact
- * merge selection. */
+ * merge selection.
+ *
+ * @param v the reclaim deletes weight
+ * @return this merge policy instance
+ **/
public CommitMitigatingTieredMergePolicy setReclaimDeletesWeight(double v) {
if (v < 0.0) {
throw new IllegalArgumentException("reclaimDeletesWeight must be >= 0.0 (got " + v + ")");
@@ -157,7 +184,10 @@ public class CommitMitigatingTieredMerge
return this;
}
- /** See {@link #setReclaimDeletesWeight}. */
+ /** See {@link #setReclaimDeletesWeight}.
+ * @return the reclaim deletes weight
+ *
+ **/
public double getReclaimDeletesWeight() {
return reclaimDeletesWeight;
}
@@ -166,7 +196,12 @@ public class CommitMitigatingTieredMerge
* size, ie treated as equal (floor) size for merge
* selection. This is to prevent frequent flushing of
* tiny segments from allowing a long tail in the index.
- * Default is 2 MB. */
+ * Default is 2 MB.
+ *
+ * @param v floor segment size in MB
+ * @return this merge policy instance
+ *
+ **/
public CommitMitigatingTieredMergePolicy setFloorSegmentMB(double v) {
if (v <= 0.0) {
throw new IllegalArgumentException("floorSegmentMB must be >= 0.0 (got " + v + ")");
@@ -177,6 +212,7 @@ public class CommitMitigatingTieredMerge
}
/** Returns the current floorSegmentMB.
+ * @return the floor segment size in MB
*
* @see #setFloorSegmentMB */
public double getFloorSegmentMB() {
@@ -185,7 +221,12 @@ public class CommitMitigatingTieredMerge
/** When forceMergeDeletes is called, we only merge away a
* segment if its delete percentage is over this
- * threshold. Default is 10%. */
+ * threshold. Default is 10%.
+ *
+ * @param v the force merge deletes allowed percentage
+ * @return this merge policy instance
+ *
+ **/
public CommitMitigatingTieredMergePolicy setForceMergeDeletesPctAllowed(double v) {
if (v < 0.0 || v > 100.0) {
throw new IllegalArgumentException("forceMergeDeletesPctAllowed must be between 0.0 and 100.0 inclusive (got " + v + ")");
@@ -195,6 +236,7 @@ public class CommitMitigatingTieredMerge
}
/** Returns the current forceMergeDeletesPctAllowed setting.
+ * @return the forceMergeDeletesPctAllowed
*
* @see #setForceMergeDeletesPctAllowed */
public double getForceMergeDeletesPctAllowed() {
@@ -208,7 +250,12 @@ public class CommitMitigatingTieredMerge
* #setMaxMergeAtOnce} otherwise you'll force too much
* merging to occur.</p>
*
- * <p>Default is 10.0.</p> */
+ * <p>Default is 10.0.</p>
+ *
+ * @param v segments per tier
+ * @return this merge policy instance
+ *
+ **/
public CommitMitigatingTieredMergePolicy setSegmentsPerTier(double v) {
if (v < 2.0) {
throw new IllegalArgumentException("segmentsPerTier must be >= 2.0 (got " + v + ")");
@@ -218,12 +265,18 @@ public class CommitMitigatingTieredMerge
}
/** Returns the current segmentsPerTier setting.
+ * @return segments per tier
*
* @see #setSegmentsPerTier */
public double getSegmentsPerTier() {
return segsPerTier;
}
+ /**
+ * set the max no. of committed MBs for a merge to happen
+ * @param maxCommitRateMB max commit rate in MB (mb/sec)
+ * @return this merge policy instance
+ */
public CommitMitigatingTieredMergePolicy setMaxCommitRateMB(int maxCommitRateMB) {
this.maxCommitRateMB = maxCommitRateMB;
return this;
@@ -278,6 +331,7 @@ public class CommitMitigatingTieredMerge
double timeDelta = (now / 1000d) - (time / 1000d);
double commitRate = Math.abs(docCount - infos.totalDocCount()) / timeDelta;
log.debug("committing {} docs/sec", commitRate);
+ System.out.printf("committing %s docs/sec\n", commitRate);
docCount = infos.totalDocCount();
time = now;
@@ -378,6 +432,7 @@ public class CommitMitigatingTieredMerge
double bytes = idxBytes - this.mb;
double mbRate = bytes / timeDelta;
log.debug("committing {} MBs/sec", mbRate);
+ System.out.printf("committing %s MBs/sec\n", mbRate);
if (verbose()) {
message(mbRate + "mb/s (max: " + maxCommitRateMB + "mb/s)");
@@ -458,7 +513,12 @@ public class CommitMitigatingTieredMerge
}
}
- /** Expert: scores one merge; subclasses can override. */
+ /** Expert: scores one merge; subclasses can override.
+ * @param candidate a list of candidate segments
+ * @param hitTooLarge hit too large setting
+ * @param mergingBytes the bytes to merge
+ * @return a merge score
+ **/
protected MergeScore score(List<SegmentCommitInfo> candidate, boolean hitTooLarge, long mergingBytes) throws IOException {
long totBeforeMergeBytes = 0;
long totAfterMergeBytes = 0;