You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by GitBox <gi...@apache.org> on 2021/02/10 17:39:26 UTC

[GitHub] [lucene-solr] balmukundblr opened a new pull request #2349: Added FlushIndexTask to flush documents at index thread level.

balmukundblr opened a new pull request #2349:
URL: https://github.com/apache/lucene-solr/pull/2349


   # Description
   
   Longer completion time for Close Index call.
   
   Once AddDoc task completes, Benchmark algo calls ForceMerge/CloseIndex task, which eventually allows all pending flushes to be completed. Since flushes during CloseIndex call are sequential, it takes longer time to complete and delays the overall Index completion time. While indexing 1 million documents with reuters21578 (plain text Document derived from reuters21578 corpus), we observed CloseIndex call takes around 35% of total time.
   
   # Solution
   
   Developed a new FlushIndexTask, which uses flushNextBuffer() Lucene API, to flush document at Index thread level, while not impacting any other Index threads. Adding this task in the algo file, immediately after AddDoc task, would ensure flushing all docs before calling ForceMerge/CloseIndex task. 
   With this solution in place, CloseIndex task time was reduced significantly and it also improved total time for Indexing.
   
   
   # Tests
   
   Since, we are using existing Lucene API - flushNextBuffer(), hence it already has test cases.
   -Passed existing tests
   
   # Checklist
   
   Please review the following and check all that apply:
   
   - [x] I have reviewed the guidelines for [How to Contribute](https://wiki.apache.org/solr/HowToContribute) and my code conforms to the standards described there to the best of my ability.
     [ ] I have created a Jira issue and added the issue ID to my pull request title.
   - [x] I have given Solr maintainers [access](https://help.github.com/en/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork) to contribute to my PR branch. (optional but recommended)
   - [x] I have developed this patch against the `master` branch.
   - [x] I have run `./gradlew check`.
   - [ ] I have added tests for my changes.
   - [ ] I have added documentation for the [Ref Guide](https://github.com/apache/lucene-solr/tree/master/solr/solr-ref-guide) (for Solr changes only).
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


[GitHub] [lucene-solr] mikemccand commented on a change in pull request #2349: Added FlushIndexTask to flush documents at index thread level.

Posted by GitBox <gi...@apache.org>.
mikemccand commented on a change in pull request #2349:
URL: https://github.com/apache/lucene-solr/pull/2349#discussion_r582790416



##########
File path: lucene/benchmark/conf/indexing-flush-by-RAM-multithreaded.alg
##########
@@ -53,7 +53,8 @@ log.queries=true
 
     { "Populate"
         CreateIndex
-        [{ "MAddDocs" AddDoc } : 5000] : 4
+        #[{ "MAddDocs" AddDoc } : 5000] : 4
+        [{ {{"MAddDocs" AddDoc } : 5000} FlushIndex }  ] : 20

Review comment:
       Maybe 1) remove the old (commented out) line entirely?  And 2), 20 threads seems a bit much for a "typical" box now?  Maybe go to 8 instead?
   
   Hmm, it would be nice if benchmarks made the local machine's CPU concurrency available (`Runtime.getRuntime().availableProcessors()`) so we could set this dynamically.  But that is for another day!




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


[GitHub] [lucene-solr] balmukundblr commented on a change in pull request #2349: Added FlushIndexTask to flush documents at index thread level.

Posted by GitBox <gi...@apache.org>.
balmukundblr commented on a change in pull request #2349:
URL: https://github.com/apache/lucene-solr/pull/2349#discussion_r584907513



##########
File path: lucene/benchmark/conf/indexing-flush-by-RAM-multithreaded.alg
##########
@@ -53,7 +53,8 @@ log.queries=true
 
     { "Populate"
         CreateIndex
-        [{ "MAddDocs" AddDoc } : 5000] : 4
+        #[{ "MAddDocs" AddDoc } : 5000] : 4
+        [{ {{"MAddDocs" AddDoc } : 5000} FlushIndex }  ] : 20

Review comment:
       1) Sure Mike, we will remove the old (commented out) line entirely.
   2) We can change #parallel indexing thread to 8, to work with a typical box.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


[GitHub] [lucene-solr] balmukundblr commented on pull request #2349: Added FlushIndexTask to flush documents at index thread level.

Posted by GitBox <gi...@apache.org>.
balmukundblr commented on pull request #2349:
URL: https://github.com/apache/lucene-solr/pull/2349#issuecomment-829439874


   > Thanks @balmukundblr this looks great! Could you please open a new PR on the new Lucene GitHub repo? https://github.com/apache/lucene
   > 
   > Thanks!
   
   As you suggested, i've raised a PR(https://github.com/apache/lucene/pull/116)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org


[GitHub] [lucene-solr] mikemccand commented on pull request #2349: Added FlushIndexTask to flush documents at index thread level.

Posted by GitBox <gi...@apache.org>.
mikemccand commented on pull request #2349:
URL: https://github.com/apache/lucene-solr/pull/2349#issuecomment-827082089


   Thanks @balmukundblr this looks great!  Could you please open a new PR on the new Lucene GitHub repo?  https://github.com/apache/lucene
   
   Thanks!


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org