blob: 91b2643057af9622fbddfc4c3bc3ec6d742ee1ab [file] [log] [blame]
diff --git a/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java b/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java
index a6d9664..43bbcfb 100644
--- a/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java
+++ b/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java
@@ -344,6 +344,8 @@ public class TieredMergePolicy extends MergePolicy {
int totalDelDocs = 0;
int totalMaxDoc = 0;
+ long mergingBytes = 0;
+
List<SegmentSizeAndDocs> sortedInfos = getSortedBySegmentSize(infos, mergeContext);
Iterator<SegmentSizeAndDocs> iter = sortedInfos.iterator();
while (iter.hasNext()) {
@@ -359,6 +361,7 @@ public class TieredMergePolicy extends MergePolicy {
message(" seg=" + segString(mergeContext, Collections.singleton(segSizeDocs.segInfo)) + " size=" + String.format(Locale.ROOT, "%.3f", segBytes / 1024 / 1024.) + " MB" + extra, mergeContext);
}
if (merging.contains(segSizeDocs.segInfo)) {
+ mergingBytes += segSizeDocs.sizeInBytes;
iter.remove();
} else {
totalDelDocs += segSizeDocs.delCount;
@@ -398,18 +401,13 @@ public class TieredMergePolicy extends MergePolicy {
// 1> Overall percent deleted docs relatively small and this segment is larger than 50% maxSegSize
// 2> overall percent deleted docs large and this segment is large and has few deleted docs
- long mergingBytes = 0L;
-
while (iter.hasNext()) {
SegmentSizeAndDocs segSizeDocs = iter.next();
double segDelPct = (double) segSizeDocs.delCount / (double) segSizeDocs.maxDoc;
if (segSizeDocs.sizeInBytes > maxMergedSegmentBytes / 2 && (totalDelPct < targetAsPct || segDelPct < targetAsPct)) {
iter.remove();
tooBigCount++; // Just for reporting purposes.
- } else {
- mergingBytes += segSizeDocs.sizeInBytes;
}
-
}
if (verbose(mergeContext) && tooBigCount > 0) {
message(" allowedSegmentCount=" + allowedSegCount + " vs count=" + infos.size() +