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 2011/01/23 21:00:08 UTC
svn commit: r1062509 - in /lucene/dev/trunk/lucene/src:
java/org/apache/lucene/index/IndexWriter.java
test/org/apache/lucene/index/TestNRTThreads.java
Author: mikemccand
Date: Sun Jan 23 20:00:08 2011
New Revision: 1062509
URL: http://svn.apache.org/viewvc?rev=1062509&view=rev
Log:
make sure bulk merging is working
Modified:
lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexWriter.java
lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexWriter.java?rev=1062509&r1=1062508&r2=1062509&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexWriter.java Sun Jan 23 20:00:08 2011
@@ -270,6 +270,9 @@ public class IndexWriter implements Clos
// The PayloadProcessorProvider to use when segments are merged
private PayloadProcessorProvider payloadProcessorProvider;
+ // for testing
+ boolean anyNonBulkMerges;
+
/**
* Expert: returns a readonly reader, covering all
* committed as well as un-committed changes to the index.
@@ -333,6 +336,8 @@ public class IndexWriter implements Clos
ensureOpen();
+ final long tStart = System.currentTimeMillis();
+
if (infoStream != null) {
message("flush at getReader");
}
@@ -355,6 +360,9 @@ public class IndexWriter implements Clos
}
maybeMerge();
+ if (infoStream != null) {
+ message("getReader took " + (System.currentTimeMillis() - tStart) + " msec");
+ }
return r;
}
@@ -3085,6 +3093,7 @@ public class IndexWriter implements Clos
message("merge segmentCodecs=" + merger.getSegmentCodecs());
message("merge store matchedCount=" + merger.getMatchedSubReaderCount() + " vs " + numSegments);
}
+ anyNonBulkMerges |= merger.getMatchedSubReaderCount() != numSegments;
assert mergedDocCount == totDocCount;
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java?rev=1062509&r1=1062508&r2=1062509&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java Sun Jan 23 20:00:08 2011
@@ -39,6 +39,7 @@ import org.apache.lucene.search.Sort;
import org.apache.lucene.search.SortField;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.TopDocs;
+import org.apache.lucene.document.Field;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.MockDirectoryWrapper;
import org.apache.lucene.util.NamedThreadFactory;
@@ -132,6 +133,13 @@ public class TestNRTThreads extends Luce
if (doc == null) {
break;
}
+ final String addedField;
+ if (random.nextBoolean()) {
+ addedField = "extra" + random.nextInt(10);
+ doc.add(new Field(addedField, "a random field", Field.Store.NO, Field.Index.ANALYZED));
+ } else {
+ addedField = null;
+ }
if (random.nextBoolean()) {
if (VERBOSE) {
//System.out.println(Thread.currentThread().getName() + ": add doc id:" + doc.get("id"));
@@ -166,6 +174,9 @@ public class TestNRTThreads extends Luce
toDeleteIDs.clear();
}
addCount.getAndIncrement();
+ if (addedField != null) {
+ doc.removeField(addedField);
+ }
} catch (Exception exc) {
System.out.println(Thread.currentThread().getName() + ": hit exc");
exc.printStackTrace();
@@ -347,7 +358,8 @@ public class TestNRTThreads extends Luce
writer.commit();
assertEquals("index=" + writer.segString() + " addCount=" + addCount + " delCount=" + delCount, addCount.get() - delCount.get(), writer.numDocs());
-
+
+ assertFalse(writer.anyNonBulkMerges);
writer.close(false);
_TestUtil.checkIndex(dir);
dir.close();