Return-Path: Delivered-To: apmail-lucene-java-commits-archive@www.apache.org Received: (qmail 86229 invoked from network); 22 Oct 2007 14:04:56 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 22 Oct 2007 14:04:56 -0000 Received: (qmail 28694 invoked by uid 500); 22 Oct 2007 14:04:44 -0000 Delivered-To: apmail-lucene-java-commits-archive@lucene.apache.org Received: (qmail 28613 invoked by uid 500); 22 Oct 2007 14:04:44 -0000 Mailing-List: contact java-commits-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: java-dev@lucene.apache.org Delivered-To: mailing list java-commits@lucene.apache.org Received: (qmail 28602 invoked by uid 99); 22 Oct 2007 14:04:44 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 22 Oct 2007 07:04:44 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 22 Oct 2007 14:04:55 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 3BACA1A9832; Mon, 22 Oct 2007 07:04:34 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r587101 - in /lucene/java/trunk/src/java/org/apache/lucene/index: ConcurrentMergeScheduler.java IndexWriter.java LogMergePolicy.java Date: Mon, 22 Oct 2007 14:04:32 -0000 To: java-commits@lucene.apache.org From: mikemccand@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20071022140434.3BACA1A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: mikemccand Date: Mon Oct 22 07:04:31 2007 New Revision: 587101 URL: http://svn.apache.org/viewvc?rev=587101&view=rev Log: LUCENE-1022: share writer's infoStream with LogMergePolicy & ConcurrentMergeScheduler Modified: lucene/java/trunk/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java lucene/java/trunk/src/java/org/apache/lucene/index/LogMergePolicy.java Modified: lucene/java/trunk/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java?rev=587101&r1=587100&r2=587101&view=diff ============================================================================== --- lucene/java/trunk/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java (original) +++ lucene/java/trunk/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java Mon Oct 22 07:04:31 2007 @@ -33,8 +33,6 @@ public class ConcurrentMergeScheduler implements MergeScheduler { - public static boolean VERBOSE = false; - private int mergeThreadPriority = -1; private List mergeThreads = new ArrayList(); @@ -44,6 +42,7 @@ private Directory dir; private boolean closed; + private IndexWriter writer; public ConcurrentMergeScheduler() { if (allInstances != null) { @@ -94,7 +93,8 @@ } private void message(String message) { - System.out.println("CMS [" + Thread.currentThread().getName() + "]: " + message); + if (writer != null) + writer.message("CMS: " + message); } private synchronized void initMergeThreadPriority() { @@ -110,11 +110,10 @@ public synchronized void sync() { while(mergeThreadCount() > 0) { - if (VERBOSE) { - message("now wait for threads; currently " + mergeThreads.size() + " still running"); - for(int i=0;iReturns the number of segments that are merged at * once and also controls the total number of segments @@ -211,6 +217,8 @@ public MergeSpecification findMerges(SegmentInfos infos, IndexWriter writer) throws IOException { final int numSegments = infos.size(); + this.writer = writer; + message("findMerges: " + numSegments + " segments"); // Compute levels, which is just log (base mergeFactor) // of the size of each segment @@ -284,6 +292,7 @@ } upto--; } + message(" level " + levelBottom + " to " + maxLevel + ": " + (1+upto-start) + " segments"); // Finally, record all merges that are viable at this level: int end = start + mergeFactor; @@ -297,8 +306,11 @@ if (!anyTooLarge) { if (spec == null) spec = new MergeSpecification(); + message(" " + start + " to " + end + ": add this merge"); spec.add(new OneMerge(infos.range(start, end), useCompoundFile)); - } + } else + message(" " + start + " to " + end + ": contains segment over maxMergeSize or maxMergeDocs; skipping"); + start = end; end = start + mergeFactor; }