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 2015/02/27 16:25:37 UTC

svn commit: r1662723 - in /lucene/dev/branches/lucene_solr_4_10/lucene: CHANGES.txt core/src/java/org/apache/lucene/codecs/DocValuesConsumer.java

Author: mikemccand
Date: Fri Feb 27 15:25:37 2015
New Revision: 1662723

URL: http://svn.apache.org/r1662723
Log:
LUCENE-6306: allow doc values and norms merging to be aborted in IW.rollback

Modified:
    lucene/dev/branches/lucene_solr_4_10/lucene/CHANGES.txt
    lucene/dev/branches/lucene_solr_4_10/lucene/core/src/java/org/apache/lucene/codecs/DocValuesConsumer.java

Modified: lucene/dev/branches/lucene_solr_4_10/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_4_10/lucene/CHANGES.txt?rev=1662723&r1=1662722&r2=1662723&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_4_10/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/lucene_solr_4_10/lucene/CHANGES.txt Fri Feb 27 15:25:37 2015
@@ -52,6 +52,10 @@ Bug fixes
   BooleanQuery searches.  (Dragan Jotannovic, jane chang via Mike
   McCandless)
   
+* LUCENE-6306: Merging of doc values and norms now checks whether the
+  merge was aborted so IndexWriter.rollback can more promptly abort a
+  running merge. (Robert Muir, Mike McCandless)
+
 API Changes
 
 * LUCENE-6212: Deprecate IndexWriter APIs that accept per-document Analyzer.

Modified: lucene/dev/branches/lucene_solr_4_10/lucene/core/src/java/org/apache/lucene/codecs/DocValuesConsumer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_4_10/lucene/core/src/java/org/apache/lucene/codecs/DocValuesConsumer.java?rev=1662723&r1=1662722&r2=1662723&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_4_10/lucene/core/src/java/org/apache/lucene/codecs/DocValuesConsumer.java (original)
+++ lucene/dev/branches/lucene_solr_4_10/lucene/core/src/java/org/apache/lucene/codecs/DocValuesConsumer.java Fri Feb 27 15:25:37 2015
@@ -126,6 +126,8 @@ public abstract class DocValuesConsumer
    */
   public void mergeNumericField(final FieldInfo fieldInfo, final MergeState mergeState, final List<NumericDocValues> toMerge, final List<Bits> docsWithField) throws IOException {
 
+    mergeState.checkAbort.work(mergeState.segmentInfo.getDocCount());
+
     addNumericField(fieldInfo,
                     new Iterable<Number>() {
                       @Override
@@ -207,6 +209,8 @@ public abstract class DocValuesConsumer
    */
   public void mergeBinaryField(FieldInfo fieldInfo, final MergeState mergeState, final List<BinaryDocValues> toMerge, final List<Bits> docsWithField) throws IOException {
 
+    mergeState.checkAbort.work(mergeState.segmentInfo.getDocCount());
+
     addBinaryField(fieldInfo,
                    new Iterable<BytesRef>() {
                      @Override
@@ -287,6 +291,9 @@ public abstract class DocValuesConsumer
    * iterables that filter deleted documents.
    */
   public void mergeSortedNumericField(FieldInfo fieldInfo, final MergeState mergeState, List<SortedNumericDocValues> toMerge) throws IOException {
+
+    mergeState.checkAbort.work(mergeState.segmentInfo.getDocCount());
+
     final AtomicReader readers[] = mergeState.readers.toArray(new AtomicReader[toMerge.size()]);
     final SortedNumericDocValues dvs[] = toMerge.toArray(new SortedNumericDocValues[toMerge.size()]);
     
@@ -438,6 +445,9 @@ public abstract class DocValuesConsumer
    * an Iterable that merges ordinals and values and filters deleted documents .
    */
   public void mergeSortedField(FieldInfo fieldInfo, final MergeState mergeState, List<SortedDocValues> toMerge) throws IOException {
+
+    mergeState.checkAbort.work(mergeState.segmentInfo.getDocCount());
+
     final AtomicReader readers[] = mergeState.readers.toArray(new AtomicReader[toMerge.size()]);
     final SortedDocValues dvs[] = toMerge.toArray(new SortedDocValues[toMerge.size()]);
     
@@ -577,6 +587,9 @@ public abstract class DocValuesConsumer
    * an Iterable that merges ordinals and values and filters deleted documents .
    */
   public void mergeSortedSetField(FieldInfo fieldInfo, final MergeState mergeState, List<SortedSetDocValues> toMerge) throws IOException {
+
+    mergeState.checkAbort.work(mergeState.segmentInfo.getDocCount());
+
     final AtomicReader readers[] = mergeState.readers.toArray(new AtomicReader[toMerge.size()]);
     final SortedSetDocValues dvs[] = toMerge.toArray(new SortedSetDocValues[toMerge.size()]);