Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-14923

Indexing performance is unacceptable when child documents are involved

    XMLWordPrintableJSON

    Details

      Description

      Parallel indexing does not make sense at moment when child documents are used.

      The org.apache.solr.update.processor.DistributedUpdateProcessor checks at the end of the method doVersionAdd if Ulog caches should be refreshed.

      This check will return true if any child document is included in the AddUpdateCommand.

      If so ulog.openRealtimeSearcher(); is called, this call is very expensive, and executed in a synchronized block of the UpdateLog instance, therefore all other operations on the UpdateLog are blocked too.

      Because every important UpdateLog method (add, delete, ...) is done using a synchronized block almost each operation is blocked.

      This reduces multi threaded index update to a single thread behavior.

      The described behavior is not depending on any option of the UpdateRequest, so it does not make any difference if 'waitFlush', 'waitSearcher' or 'softCommit'  is true or false.

      The described behavior makes the usage of ChildDocuments useless, because the performance is unacceptable.

       

       

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                dsmiley David Smiley
                Reporter:
                thomas.woeckinger Thomas Wöckinger
              • Votes:
                0 Vote for this issue
                Watchers:
                9 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 2h 50m
                  2h 50m