You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@lucene.apache.org by mi...@apache.org on 2008/12/06 21:05:41 UTC

svn commit: r724033 - in /lucene/java/trunk/src/java/org/apache/lucene/index: ConcurrentMergeScheduler.java DocumentsWriter.java IndexWriter.java LogMergePolicy.java

Author: mikemccand
Date: Sat Dec  6 12:05:40 2008
New Revision: 724033

URL: http://svn.apache.org/viewvc?rev=724033&view=rev
Log:
don't construct verbose message Strings unless infoStream is non-null

Modified:
    lucene/java/trunk/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java
    lucene/java/trunk/src/java/org/apache/lucene/index/DocumentsWriter.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=724033&r1=724032&r2=724033&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 Sat Dec  6 12:05:40 2008
@@ -94,8 +94,12 @@
     }
   }
 
+  private boolean verbose() {
+    return writer != null && writer.verbose();
+  }
+  
   private void message(String message) {
-    if (writer != null)
+    if (verbose())
       writer.message("CMS: " + message);
   }
 
@@ -115,11 +119,14 @@
 
   public synchronized void sync() {
     while(mergeThreadCount() > 0) {
-      message("now wait for threads; currently " + mergeThreads.size() + " still running");
+      if (verbose())
+        message("now wait for threads; currently " + mergeThreads.size() + " still running");
       final int count = mergeThreads.size();
-      for(int i=0;i<count;i++)
-        message("    " + i + ": " + ((MergeThread) mergeThreads.get(i)));
-
+      if (verbose()) {
+        for(int i=0;i<count;i++)
+          message("    " + i + ": " + ((MergeThread) mergeThreads.get(i)));
+      }
+      
       try {
         wait();
       } catch (InterruptedException e) {
@@ -154,9 +161,11 @@
     // these newly proposed merges will likely already be
     // registered.
 
-    message("now merge");
-    message("  index: " + writer.segString());
-
+    if (verbose()) {
+      message("now merge");
+      message("  index: " + writer.segString());
+    }
+    
     // Iterate, pulling from the IndexWriter's queue of
     // pending merges, until it's empty:
     while(true) {
@@ -167,7 +176,8 @@
 
       MergePolicy.OneMerge merge = writer.getNextMerge();
       if (merge == null) {
-        message("  no more merges pending; now return");
+        if (verbose())
+          message("  no more merges pending; now return");
         return;
       }
 
@@ -177,7 +187,8 @@
 
       synchronized(this) {
         while (mergeThreadCount() >= maxThreadCount) {
-          message("    too many merge threads running; stalling...");
+          if (verbose())
+            message("    too many merge threads running; stalling...");
           try {
             wait();
           } catch (InterruptedException ie) {
@@ -185,7 +196,8 @@
           }
         }
 
-        message("  consider merge " + merge.segString(dir));
+        if (verbose())
+          message("  consider merge " + merge.segString(dir));
       
         assert mergeThreadCount() < maxThreadCount;
 
@@ -193,7 +205,8 @@
         // merge:
         final MergeThread merger = getMergeThread(writer, merge);
         mergeThreads.add(merger);
-        message("    launch new thread [" + merger.getName() + "]");
+        if (verbose())
+          message("    launch new thread [" + merger.getName() + "]");
         merger.start();
       }
     }
@@ -253,7 +266,8 @@
       
       try {
 
-        message("  merge thread: start");
+        if (verbose())
+          message("  merge thread: start");
 
         while(true) {
           setRunningMerge(merge);
@@ -264,12 +278,14 @@
           merge = writer.getNextMerge();
           if (merge != null) {
             writer.mergeInit(merge);
-            message("  merge thread: do another merge " + merge.segString(dir));
+            if (verbose())
+              message("  merge thread: do another merge " + merge.segString(dir));
           } else
             break;
         }
 
-        message("  merge thread: done");
+        if (verbose())
+          message("  merge thread: done");
 
       } catch (Throwable exc) {
 

Modified: lucene/java/trunk/src/java/org/apache/lucene/index/DocumentsWriter.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/DocumentsWriter.java?rev=724033&r1=724032&r2=724033&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/index/DocumentsWriter.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/index/DocumentsWriter.java Sat Dec  6 12:05:40 2008
@@ -395,7 +395,8 @@
   }
 
   void message(String message) {
-    writer.message("DW: " + message);
+    if (infoStream != null)
+      writer.message("DW: " + message);
   }
 
   final List openFiles = new ArrayList();
@@ -433,7 +434,8 @@
   synchronized void abort() throws IOException {
 
     try {
-      message("docWriter: now abort");
+      if (infoStream != null)
+        message("docWriter: now abort");
 
       // Forcefully remove waiting ThreadStates from line
       waitQueue.abort();

Modified: lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java?rev=724033&r1=724032&r2=724033&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java Sat Dec  6 12:05:40 2008
@@ -1181,7 +1181,8 @@
           oldInfos.read(directory, commit.getSegmentsFileName());
           segmentInfos.replace(oldInfos);
           changeCount++;
-          message("init: loaded commit \"" + commit.getSegmentsFileName() + "\"");
+          if (infoStream != null)
+            message("init: loaded commit \"" + commit.getSegmentsFileName() + "\"");
         }
 
         // We assume that this segments_N was previously
@@ -1606,6 +1607,11 @@
     return infoStream;
   }
 
+  /** Returns true if verbosing is enabled (i.e., infoStream != null). */
+  public boolean verbose() {
+    return infoStream != null;
+  }
+  
   /**
    * Sets the maximum time to wait for a write lock (in milliseconds) for this instance of IndexWriter.  @see
    * @see #setDefaultWriteLockTimeout to change the default value for all instances of IndexWriter.
@@ -1817,9 +1823,8 @@
       docStoreSegment = docWriter.closeDocStore();
       success = true;
     } finally {
-      if (!success) {
-        if (infoStream != null)
-          message("hit exception closing doc store segment");
+      if (!success && infoStream != null) {
+        message("hit exception closing doc store segment");
       }
     }
 
@@ -3582,7 +3587,8 @@
     if (!autoCommit && pendingCommit != null)
       throw new IllegalStateException("prepareCommit was already called with no corresponding call to commit");
 
-    message("prepareCommit: flush");
+    if (infoStream != null)
+      message("prepareCommit: flush");
 
     flush(true, true, true);
 
@@ -3658,12 +3664,14 @@
     waitForCommit();
 
     try {
-      message("commit: start");
+      if (infoStream != null)
+        message("commit: start");
 
       if (autoCommit || pendingCommit == null) {
-        message("commit: now prepare");
+        if (infoStream != null)
+          message("commit: now prepare");
         prepareCommit(commitUserData, true);
-      } else
+      } else if (infoStream != null)
         message("commit: already prepared");
 
       finishCommit();
@@ -3676,9 +3684,11 @@
 
     if (pendingCommit != null) {
       try {
-        message("commit: pendingCommit != null");
+        if (infoStream != null)
+    	  message("commit: pendingCommit != null");
         pendingCommit.finishCommit(directory);
-        message("commit: wrote segments file \"" + pendingCommit.getCurrentSegmentFileName() + "\"");
+        if (infoStream != null)
+          message("commit: wrote segments file \"" + pendingCommit.getCurrentSegmentFileName() + "\"");
         lastCommitChangeCount = pendingCommitChangeCount;
         segmentInfos.updateGeneration(pendingCommit);
         segmentInfos.setUserData(pendingCommit.getUserData());
@@ -3690,10 +3700,11 @@
         notifyAll();
       }
 
-    } else
-      message("commit: pendingCommit == null; skip");
+    } else if (infoStream != null)
+        message("commit: pendingCommit == null; skip");
 
-    message("commit: done");
+    if (infoStream != null)
+      message("commit: done");
   }
 
   /**
@@ -4008,7 +4019,8 @@
 
     if (deletes != null) {
       merge.info.advanceDelGen();
-      message("commit merge deletes to " + merge.info.getDelFileName());
+      if (infoStream != null)
+        message("commit merge deletes to " + merge.info.getDelFileName());
       deletes.write(directory, merge.info.getDelFileName());
       merge.info.setDelCount(delCount);
       assert delCount == deletes.count();
@@ -4857,7 +4869,8 @@
                   // Because we incRef'd this commit point, above,
                   // the file had better exist:
                   assert directory.fileExists(fileName): "file '" + fileName + "' does not exist dir=" + directory;
-                  message("now sync " + fileName);
+                  if (infoStream != null)
+                    message("now sync " + fileName);
                   directory.sync(fileName);
                   success = true;
                 } finally {
@@ -4888,7 +4901,8 @@
 
             // Wait now for any current pending commit to complete:
             while(pendingCommit != null) {
-              message("wait for existing pendingCommit to finish...");
+              if (infoStream != null)
+                message("wait for existing pendingCommit to finish...");
               doWait();
             }
 
@@ -4917,14 +4931,15 @@
               pendingCommitChangeCount = myChangeCount;
               success = true;
             } finally {
-              if (!success)
+              if (!success && infoStream != null)
                 message("hit exception committing segments file");
             }
-          } else
+          } else if (infoStream != null)
             message("sync superseded by newer infos");
         }
 
-        message("done all syncs");
+        if (infoStream != null)
+          message("done all syncs");
 
         assert testPoint("midStartCommitSuccess");
 

Modified: lucene/java/trunk/src/java/org/apache/lucene/index/LogMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/LogMergePolicy.java?rev=724033&r1=724032&r2=724033&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/index/LogMergePolicy.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/index/LogMergePolicy.java Sat Dec  6 12:05:40 2008
@@ -63,8 +63,12 @@
   private boolean useCompoundDocStore = true;
   private IndexWriter writer;
 
+  protected boolean verbose() {
+    return writer != null && writer.verbose();
+  }
+  
   private void message(String message) {
-    if (writer != null)
+    if (verbose())
       writer.message("LMP: " + message);
   }
 
@@ -258,20 +262,23 @@
 
     final int numSegments = segmentInfos.size();
 
-    message("findMergesToExpungeDeletes: " + numSegments + " segments");
+    if (verbose())
+      message("findMergesToExpungeDeletes: " + numSegments + " segments");
 
     MergeSpecification spec = new MergeSpecification();
     int firstSegmentWithDeletions = -1;
     for(int i=0;i<numSegments;i++) {
       final SegmentInfo info = segmentInfos.info(i);
       if (info.hasDeletions()) {
-        message("  segment " + info.name + " has deletions");
+        if (verbose())
+          message("  segment " + info.name + " has deletions");
         if (firstSegmentWithDeletions == -1)
           firstSegmentWithDeletions = i;
         else if (i - firstSegmentWithDeletions == mergeFactor) {
           // We've seen mergeFactor segments in a row with
           // deletions, so force a merge now:
-          message("  add merge " + firstSegmentWithDeletions + " to " + (i-1) + " inclusive");
+          if (verbose())
+            message("  add merge " + firstSegmentWithDeletions + " to " + (i-1) + " inclusive");
           spec.add(new OneMerge(segmentInfos.range(firstSegmentWithDeletions, i), useCompoundFile));
           firstSegmentWithDeletions = i;
         }
@@ -279,14 +286,16 @@
         // End of a sequence of segments with deletions, so,
         // merge those past segments even if it's fewer than
         // mergeFactor segments
-        message("  add merge " + firstSegmentWithDeletions + " to " + (i-1) + " inclusive");
+        if (verbose())
+          message("  add merge " + firstSegmentWithDeletions + " to " + (i-1) + " inclusive");
         spec.add(new OneMerge(segmentInfos.range(firstSegmentWithDeletions, i), useCompoundFile));
         firstSegmentWithDeletions = -1;
       }
     }
 
     if (firstSegmentWithDeletions != -1) {
-      message("  add merge " + firstSegmentWithDeletions + " to " + (numSegments-1) + " inclusive");
+      if (verbose())
+        message("  add merge " + firstSegmentWithDeletions + " to " + (numSegments-1) + " inclusive");
       spec.add(new OneMerge(segmentInfos.range(firstSegmentWithDeletions, numSegments), useCompoundFile));
     }
 
@@ -304,7 +313,8 @@
 
     final int numSegments = infos.size();
     this.writer = writer;
-    message("findMerges: " + numSegments + " segments");
+    if (verbose())
+      message("findMerges: " + numSegments + " segments");
 
     // Compute levels, which is just log (base mergeFactor)
     // of the size of each segment
@@ -371,7 +381,8 @@
         }
         upto--;
       }
-      message("  level " + levelBottom + " to " + maxLevel + ": " + (1+upto-start) + " segments");
+      if (verbose())
+        message("  level " + levelBottom + " to " + maxLevel + ": " + (1+upto-start) + " segments");
 
       // Finally, record all merges that are viable at this level:
       int end = start + mergeFactor;
@@ -385,9 +396,10 @@
         if (!anyTooLarge) {
           if (spec == null)
             spec = new MergeSpecification();
-          message("    " + start + " to " + end + ": add this merge");
+          if (verbose())
+            message("    " + start + " to " + end + ": add this merge");
           spec.add(new OneMerge(infos.range(start, end), useCompoundFile));
-        } else
+        } else if (verbose())
           message("    " + start + " to " + end + ": contains segment over maxMergeSize or maxMergeDocs; skipping");
 
         start = end;