You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2014/01/17 13:06:09 UTC
svn commit: r1559086 - in /lucene/dev/trunk: ./ lucene/ lucene/core/
lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java
Author: mikemccand
Date: Fri Jan 17 12:06:08 2014
New Revision: 1559086
URL: http://svn.apache.org/r1559086
Log:
improve javadocs/comments
Modified:
lucene/dev/trunk/ (props changed)
lucene/dev/trunk/lucene/ (props changed)
lucene/dev/trunk/lucene/core/ (props changed)
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java?rev=1559086&r1=1559085&r2=1559086&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java Fri Jan 17 12:06:08 2014
@@ -154,9 +154,12 @@ public class TieredMergePolicy extends M
}
/** Controls how aggressively merges that reclaim more
- * deletions are favored. Higher values favor selecting
- * merges that reclaim deletions. A value of 0.0 means
- * deletions don't impact merge selection. */
+ * deletions are favored. Higher values will more
+ * aggressively target merges that reclaim deletions, but
+ * 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. */
public TieredMergePolicy setReclaimDeletesWeight(double v) {
if (v < 0.0) {
throw new IllegalArgumentException("reclaimDeletesWeight must be >= 0.0 (got " + v + ")");
@@ -255,12 +258,16 @@ public class TieredMergePolicy extends M
* merge. */
protected static abstract class MergeScore {
/** Sole constructor. (For invocation by subclass
- * constructors, typically implicit.) */
+ * constructors, typically implicit.) */
protected MergeScore() {
}
+ /** Returns the score for this merge candidate; lower
+ * scores are better. */
abstract double getScore();
+ /** Human readable explanation of how the merge got this
+ * score. */
abstract String getExplanation();
}
@@ -437,9 +444,12 @@ public class TieredMergePolicy extends M
totBeforeMergeBytes += info.sizeInBytes();
}
- // Measure "skew" of the merge, which can range
- // from 1.0/numSegsBeingMerged (good) to 1.0
- // (poor):
+ // Roughly measure "skew" of the merge, i.e. how
+ // "balanced" the merge is (whether the segments are
+ // about the same size), which can range from
+ // 1.0/numSegsBeingMerged (good) to 1.0 (poor). Heavily
+ // lopsided merges (skew near 1.0) is no good; it means
+ // O(N^2) merge cost over time:
final double skew;
if (hitTooLarge) {
// Pretend the merge has perfect skew; skew doesn't