Michael Gibney created SOLR-16932:
-------------------------------------

             Summary: Http2Client should have configurable 
`maxOutstandingRequests`, to support parallel requests in high-shard-count 
contexts
                 Key: SOLR-16932
                 URL: https://issues.apache.org/jira/browse/SOLR-16932
             Project: Solr
          Issue Type: Improvement
      Security Level: Public (Default Security Level. Issues are Public)
    Affects Versions: 9.3, main (10.0)
            Reporter: Michael Gibney


Http2SolrClient is asynchronous, but it only allows for a 
[hardcoded|https://github.com/apache/solr/blob/88990d640a89091a8f7b0b2493377ac24118afe8/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java#L964]
 max number (1000) of outstanding requests. Thus, under sufficient load, 
intra-cluster communication is not fully concurrent/asynchronous, and the 
top-level coordinator node can become a bottleneck. This is especially 
problematic for high-shard-count collections (>1k shards) where a single 
top-level request easily generates sufficient load to hit this throttling, 
effectively guaranteeing a near doubling of top-level (client-side) request 
latency.

It should be possible to configure this {{maxOutstandingConnections}} threshold 
via the HttpShardHandlerFactory config. If I understand correctly the 
implications of this limit, it should be reasonable to scale it roughly 
according to the number of nodes in the cluster (consider, e.g.: 1k outstanding 
requests to 2 nodes is a very different situation than 1k outstanding requests 
to 128 nodes).





--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to