SOLR-17414: Multi-threaded search: don't throw RejectedExecutionException #2701
+44
−13
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Instead, use a caller-runs policy.
https://issues.apache.org/jira/browse/SOLR-17414
This Executor is a bit special, and as such I don't think we should modify ExecutorUtil for the needs of one executor. I'd like to back out Christine's and Gus's change. Instead, MDCAwareThreadPoolExecutor can be subclasses wherever. Didn't do this yet.
If we imagine this Executor is of general use, then its initialization should remain in CoreContainer. I put it in SolrIndexSearcher but could move it. IMO it is of general use; the multi-threaded faceting should use the same. So I'm inclined to move back.
The queue size check should be configurable. I could see values like 1, or the same as the thread count.
It'd be nice to block but without busy waiting.