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

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

[[email protected]] Currently we use thread-per-request model (especially for 
queries). To implement your proposal, I think we would need to move away from 
it (e.g. based on servlet 3 spec). Otherwise it would be wasteful of resources. 
e.g. lets assume we define 2 thread-pools internally. Now when we get a request 
(internal or external), we would submit a task in one of the queues. But still 
we will have to wait for the result to come back so that we can reply to the 
client. This means there is still a chance for distributed deadlocks. (Note 
Datastax Search uses async model 
http://www.datastax.com/dev/blog/robust-and-scalable-distributed-queries).

On the other hand, having two different endpoints backed by dedicated 
thread-pools won't have this issue. Also the amount of code change is minimal. 
If you look at my patch, no changes are required in any part of the server side 
functionality. 

Any thoughts?


 

> Use two thread pools, one for internal requests and one for external, to 
> avoid distributed deadlock and decrease the number of threads that need to be 
> created.
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 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