New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SOLR-15983: parallel log replay now uses separate UpdateRequestProcessor objects #601
Conversation
This PR isn't clear to me. It appears it would ignore the existing created |
Yes, the |
… finish() calls and to make it clearer that the URPs are used correctly (have correct lifecycle and aren't shared).
I found the lifecycle of these "proc" instances in this code to not be as clear as I'd like. And I saw that finish() was being called after each document (when parallel replay) which doesn't sound nice, (may cause excessive |
Resolved Conflicts: solr/core/src/java/org/apache/solr/update/UpdateLog.java
Very nice, thanks! The parallelised and non-parallelised |
@@ -642,6 +642,8 @@ Bug Fixes | |||
|
|||
* SOLR-15558: Don't wait for zombie processes to exit when stopping. (Colvin Cowie) | |||
|
|||
* SOLR-15983: Fix ClassCastException in UpdateLog$LogReplayer.doReplay. (Christine Poerschke, David Smiley) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Re-ran the tests, they pass. |
…sor objects (#601) * parallel log replay now uses separate UpdateRequestProcessor objects * executor local variable in UpdateLog.doReplay can be null * Use a ThreadLocal of the URP to avoid re-creating and avoid excessive finish() calls and to make it clearer that the URPs are used correctly (have correct lifecycle and aren't shared). * remove unused procThreadLocal member in favour of local variable with same name * just one for-loop on procPool to finish-and-close * add solr/CHANGES.txt entry Co-authored-by: David Smiley <dsmiley@salesforce.com> (cherry picked from commit 7c07670)
…sor objects (#601) * parallel log replay now uses separate UpdateRequestProcessor objects * executor local variable in UpdateLog.doReplay can be null * Use a ThreadLocal of the URP to avoid re-creating and avoid excessive finish() calls and to make it clearer that the URPs are used correctly (have correct lifecycle and aren't shared). * remove unused procThreadLocal member in favour of local variable with same name * just one for-loop on procPool to finish-and-close * add solr/CHANGES.txt entry Co-authored-by: David Smiley <dsmiley@salesforce.com> (cherry picked from commit 7c07670) (cherry picked from commit 7d61190) Resolved Conflicts: solr/CHANGES.txt solr/core/src/java/org/apache/solr/update/UpdateLog.java
https://issues.apache.org/jira/browse/SOLR-15983