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:12:31 UTC
svn commit: r1062513 - in /lucene/dev/branches/branch_3x: ./ lucene/
lucene/src/java/org/apache/lucene/index/IndexWriter.java
lucene/src/test/org/apache/lucene/index/TestNRTThreads.java solr/
Author: mikemccand
Date: Sun Jan 23 20:12:31 2011
New Revision: 1062513
URL: http://svn.apache.org/viewvc?rev=1062513&view=rev
Log:
make sure bulk merging is working
Modified:
lucene/dev/branches/branch_3x/ (props changed)
lucene/dev/branches/branch_3x/lucene/ (props changed)
lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/index/IndexWriter.java
lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java
lucene/dev/branches/branch_3x/solr/ (props changed)
Modified: lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/index/IndexWriter.java?rev=1062513&r1=1062512&r2=1062513&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/index/IndexWriter.java Sun Jan 23 20:12:31 2011
@@ -331,6 +331,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.
@@ -427,6 +430,8 @@ public class IndexWriter implements Clos
ensureOpen();
+ final long tStart = System.currentTimeMillis();
+
if (infoStream != null) {
message("flush at getReader");
}
@@ -450,6 +455,9 @@ public class IndexWriter implements Clos
maybeMerge();
+ if (infoStream != null) {
+ message("getReader took " + (System.currentTimeMillis() - tStart) + " msec");
+ }
return r;
}
@@ -3932,6 +3940,8 @@ public class IndexWriter implements Clos
message("merge store matchedCount=" + merger.getMatchedSubReaderCount() + " vs " + numSegments);
}
+ anyNonBulkMerges |= merger.getMatchedSubReaderCount() != numSegments;
+
// Very important to do this before opening the reader
// because SegmentReader must know if prox was written for
// this segment:
Modified: lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java?rev=1062513&r1=1062512&r2=1062513&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java (original)
+++ lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java Sun Jan 23 20:12:31 2011
@@ -38,6 +38,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.LineFileDocs;
@@ -122,6 +123,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"));
@@ -156,6 +164,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();
@@ -337,7 +348,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();