You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2014/12/22 11:10:47 UTC
svn commit: r1647279 - in /lucene/dev/branches/branch_5x: ./ lucene/
lucene/core/
lucene/core/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java
lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
Author: mikemccand
Date: Mon Dec 22 10:10:47 2014
New Revision: 1647279
URL: http://svn.apache.org/r1647279
Log:
fix IW infoStream: don't repeat 'too many merges' 4X per sec; add merge summary details about overall MB/sec
Modified:
lucene/dev/branches/branch_5x/ (props changed)
lucene/dev/branches/branch_5x/lucene/ (props changed)
lucene/dev/branches/branch_5x/lucene/core/ (props changed)
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java?rev=1647279&r1=1647278&r2=1647279&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java Mon Dec 22 10:10:47 2014
@@ -445,10 +445,10 @@ public class ConcurrentMergeScheduler ex
// updateMergeThreads). We stall this producer
// thread to prevent creation of new segments,
// until merging has caught up:
- startStallTime = System.currentTimeMillis();
- if (verbose()) {
+ if (verbose() && startStallTime == 0) {
message(" too many merges; stalling...");
}
+ startStallTime = System.currentTimeMillis();
try {
// Only wait 0.25 seconds, so if all merges are aborted (by IW.rollback) we notice:
wait(250);
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java?rev=1647279&r1=1647278&r2=1647279&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java Mon Dec 22 10:10:47 2014
@@ -3936,6 +3936,11 @@ public class IndexWriter implements Clos
merge.checkAborted(directory);
+ long mergeStartTime = 0;
+ if (infoStream.isEnabled("IW")) {
+ mergeStartTime = System.nanoTime();
+ }
+
// This is where all the work happens:
boolean success3 = false;
try {
@@ -3958,12 +3963,20 @@ public class IndexWriter implements Clos
if (infoStream.isEnabled("IW")) {
if (merger.shouldMerge()) {
+ long t1 = System.nanoTime();
+ double sec = (t1-mergeStartTime)/1000000000.;
+ double segmentMB = (merge.info.sizeInBytes()/1024./1024.);
infoStream.message("IW", "merge codec=" + codec + " docCount=" + merge.info.info.getDocCount() + "; merged segment has " +
- (mergeState.mergeFieldInfos.hasVectors() ? "vectors" : "no vectors") + "; " +
- (mergeState.mergeFieldInfos.hasNorms() ? "norms" : "no norms") + "; " +
- (mergeState.mergeFieldInfos.hasDocValues() ? "docValues" : "no docValues") + "; " +
- (mergeState.mergeFieldInfos.hasProx() ? "prox" : "no prox") + "; " +
- (mergeState.mergeFieldInfos.hasProx() ? "freqs" : "no freqs"));
+ (mergeState.mergeFieldInfos.hasVectors() ? "vectors" : "no vectors") + "; " +
+ (mergeState.mergeFieldInfos.hasNorms() ? "norms" : "no norms") + "; " +
+ (mergeState.mergeFieldInfos.hasDocValues() ? "docValues" : "no docValues") + "; " +
+ (mergeState.mergeFieldInfos.hasProx() ? "prox" : "no prox") + "; " +
+ (mergeState.mergeFieldInfos.hasProx() ? "freqs" : "no freqs") + "; " +
+ String.format(Locale.ROOT,
+ "%d msec to merge segment [%.2f MB, %.2f MB/sec]",
+ ((t1-mergeStartTime)/1000000),
+ segmentMB,
+ segmentMB / sec));
} else {
infoStream.message("IW", "skip merging fully deleted segments");
}