-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/60154/
-----------------------------------------------------------

Review request for lucene.


Repository: lucene-solr


Description
-------

Today Lucene uses a single thread to resolve buffered delete/update terms to 
actual docIDs, but this is a costly process.  This change uses multiple threads 
(the incoming indexing threads) to resolve terms concurrently.

Jira issue: https://issues.apache.org/jira/browse/LUCENE-7868


Diffs
-----

  lucene/core/src/java/org/apache/lucene/index/BinaryDocValuesFieldUpdates.java 
f8cece9 
  lucene/core/src/java/org/apache/lucene/index/BufferedUpdates.java 1c3494f 
  lucene/core/src/java/org/apache/lucene/index/BufferedUpdatesStream.java 
9955626 
  lucene/core/src/java/org/apache/lucene/index/CoalescedUpdates.java bf92ac1 
  lucene/core/src/java/org/apache/lucene/index/DocValuesFieldUpdates.java 
528d4bf 
  lucene/core/src/java/org/apache/lucene/index/DocValuesUpdate.java 1c85f33 
  lucene/core/src/java/org/apache/lucene/index/DocumentsWriter.java 2807517 
  lucene/core/src/java/org/apache/lucene/index/DocumentsWriterDeleteQueue.java 
db0e571 
  lucene/core/src/java/org/apache/lucene/index/DocumentsWriterFlushControl.java 
a5b4b7c 
  lucene/core/src/java/org/apache/lucene/index/DocumentsWriterFlushQueue.java 
2c62487 
  lucene/core/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java 
c929ba2 
  
lucene/core/src/java/org/apache/lucene/index/DocumentsWriterPerThreadPool.java 
cc72342 
  lucene/core/src/java/org/apache/lucene/index/FlushByRamOrCountsPolicy.java 
a85c98b 
  lucene/core/src/java/org/apache/lucene/index/FlushPolicy.java e70959f 
  lucene/core/src/java/org/apache/lucene/index/FreqProxTermsWriter.java 1ca2830 
  lucene/core/src/java/org/apache/lucene/index/FrozenBufferedUpdates.java 
4f482ad 
  lucene/core/src/java/org/apache/lucene/index/IndexFileDeleter.java f7f196d 
  lucene/core/src/java/org/apache/lucene/index/IndexWriter.java 14fbbae 
  lucene/core/src/java/org/apache/lucene/index/IndexWriterConfig.java 0fdbc3e 
  lucene/core/src/java/org/apache/lucene/index/LiveIndexWriterConfig.java 
d9e1bc7 
  
lucene/core/src/java/org/apache/lucene/index/MergedPrefixCodedTermsIterator.java
 cd14eec 
  
lucene/core/src/java/org/apache/lucene/index/NumericDocValuesFieldUpdates.java 
4dd3cd0 
  lucene/core/src/java/org/apache/lucene/index/PrefixCodedTerms.java df1653b 
  lucene/core/src/java/org/apache/lucene/index/ReadersAndUpdates.java d4dd4a4 
  lucene/core/src/java/org/apache/lucene/index/SegmentCommitInfo.java b1084a6 
  lucene/core/src/java/org/apache/lucene/index/SegmentCoreReaders.java ce2d448 
  lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java 1c02441 
  lucene/core/src/java/org/apache/lucene/index/SegmentReader.java c8235d5 
  lucene/core/src/java/org/apache/lucene/index/SerialMergeScheduler.java 
5a8f98b 
  lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java 668f1ec 
  lucene/core/src/java/org/apache/lucene/util/packed/AbstractPagedMutable.java 
c5fac1e 
  lucene/core/src/test/org/apache/lucene/index/TestBinaryDocValuesUpdates.java 
ed2b66f 
  
lucene/core/src/test/org/apache/lucene/index/TestDocumentsWriterDeleteQueue.java
 c60f54d 
  
lucene/core/src/test/org/apache/lucene/index/TestFlushByRamOrCountsPolicy.java 
aa2901c 
  lucene/core/src/test/org/apache/lucene/index/TestForceMergeForever.java 
0379395 
  lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java 6897f06 
  lucene/core/src/test/org/apache/lucene/index/TestIndexWriterConfig.java 
2014c16 
  lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java 
25817d9 
  lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java 
c0907a5 
  lucene/core/src/test/org/apache/lucene/index/TestIndexWriterReader.java 
584e03c 
  lucene/core/src/test/org/apache/lucene/index/TestNRTReaderWithThreads.java 
871715f 
  lucene/core/src/test/org/apache/lucene/index/TestNumericDocValuesUpdates.java 
94da587 
  lucene/core/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java 
112a108 
  lucene/core/src/test/org/apache/lucene/index/TestPrefixCodedTerms.java 
89d4ad1 
  
lucene/core/src/test/org/apache/lucene/search/TestControlledRealTimeReopenThread.java
 a1b2a5c 
  lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java 49dd333 
  
lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/IDVersionPostingsWriter.java
 334f784 
  
lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/VersionBlockTreeTermsWriter.java
 d83b915 
  
lucene/test-framework/src/java/org/apache/lucene/index/BaseDocValuesFormatTestCase.java
 8cb6665 
  
lucene/test-framework/src/java/org/apache/lucene/index/BaseIndexFileFormatTestCase.java
 959466a 
  lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java 
0243a56 


Diff: https://reviews.apache.org/r/60154/diff/1/


Testing
-------

I ran performance tests on my internal corpus; details described here: 
https://issues.apache.org/jira/browse/LUCENE-7868?focusedCommentId=16050729&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16050729

I also uncovered a pre-existing bug if you use DV updates with index sorting 
and update recently indexed documents; I'll open a separate issue to fix that 
on 6.x.


Thanks,

Mike McCandless

Reply via email to