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;