From 81213a6ac16ce9781e3aa3e881075cb1e8bff355 Mon Sep 17 00:00:00 2001 From: Michael McCandless Date: Thu, 21 Feb 2013 13:16:18 +0000 Subject: [PATCH] LUCENE-4775: move computation of merge bytes size earlier git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1448628 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/lucene/index/IndexWriter.java | 23 ++++++++++--------- .../index/TestConcurrentMergeScheduler.java | 1 + 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java b/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java index 085070d6d1f..c33a805cb15 100644 --- a/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java +++ b/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java @@ -3363,6 +3363,18 @@ public class IndexWriter implements Closeable, TwoPhaseCommit { mergingSegments.add(info); } + assert merge.estimatedMergeBytes == 0; + assert merge.totalMergeBytes == 0; + for(SegmentInfoPerCommit info : merge.segments) { + if (info.info.getDocCount() > 0) { + final int delCount = numDeletedDocs(info); + assert delCount <= info.info.getDocCount(); + final double delRatio = ((double) delCount)/info.info.getDocCount(); + merge.estimatedMergeBytes += info.sizeInBytes() * (1.0 - delRatio); + merge.totalMergeBytes += info.sizeInBytes(); + } + } + // Merge is now registered merge.registerDone = true; @@ -3451,17 +3463,6 @@ public class IndexWriter implements Closeable, TwoPhaseCommit { if (infoStream.isEnabled("IW")) { infoStream.message("IW", "merge seg=" + merge.info.info.name + " " + segString(merge.segments)); } - - assert merge.estimatedMergeBytes == 0; - for(SegmentInfoPerCommit info : merge.segments) { - if (info.info.getDocCount() > 0) { - final int delCount = numDeletedDocs(info); - assert delCount <= info.info.getDocCount(); - final double delRatio = ((double) delCount)/info.info.getDocCount(); - merge.estimatedMergeBytes += info.sizeInBytes() * (1.0 - delRatio); - merge.totalMergeBytes += info.sizeInBytes(); - } - } } static void setDiagnostics(SegmentInfo info, String source) { diff --git a/lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java b/lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java index e85ec16191f..a90fe6f7f35 100644 --- a/lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java +++ b/lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java @@ -365,6 +365,7 @@ public class TestConcurrentMergeScheduler extends LuceneTestCase { w.deleteDocuments(new Term("id", ""+random().nextInt(i+1))); } } + assertTrue(((TrackingCMS) iwc.getMergeScheduler()).totMergedBytes != 0); w.close(); d.close(); }