[ 
https://issues.apache.org/jira/browse/SOLR-7344?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14586314#comment-14586314
 ] 

Hrishikesh Gadre commented on SOLR-7344:
----------------------------------------

The current implementation of distributed querying is to block the thread 
handling top-level request until all the sub requests are complete. Have we 
thought about using fork-join framework (along with servlet 3 api) for this? At 
high-level, the idea would be to start an async servlet context and submit a 
scatter-gather task to an internal thread-pool (defined in 
HttpShardHandlerFactory). The "gather" phase would merge the results and reply 
back to the client (i.e. it will complete the async request). Because the 
"gather" phase is executed after all the sub-requests are complete (either 
success/failure), it will not occupy the thread for while the sub-requests are 
in progress. I think this will ensure to avoid the deadlock scenarios as well. 

If distributed querying is the main cause of deadlocks, I wonder if this will 
fix the problem more directly?

> Allow Jetty thread pool limits while still avoiding distributed deadlock.
> -------------------------------------------------------------------------
>
>                 Key: SOLR-7344
>                 URL: https://issues.apache.org/jira/browse/SOLR-7344
>             Project: Solr
>          Issue Type: Improvement
>          Components: SolrCloud
>            Reporter: Mark Miller
>         Attachments: SOLR-7344.patch
>
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to