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();