[ https://issues.apache.org/jira/browse/SOLR-17240?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17950441#comment-17950441 ]
David Smiley commented on SOLR-17240: ------------------------------------- As there's no progress here and SOLR-16932 has a FullStory specific PR linked there that's been merged for some time (gives me confidence in it), maybe we go with SOLR-16932 instead. In addition, I'm skeptical that Solr should have a limit, say "maxConnectionsPerHost", a name chosen based on Solr's original preferred client, Apache HttpClient, and then do math / translate that to Jetty's "setMaxConnectionsPerDestination". That leads to semantic differences we see here. We should expose the configurables of the client that is being used in the same terminology of that client. > Http2SolrClient uses too few requests per host for http2 > -------------------------------------------------------- > > Key: SOLR-17240 > URL: https://issues.apache.org/jira/browse/SOLR-17240 > Project: Solr > Issue Type: Bug > Components: SolrJ > Affects Versions: 8.0 > Reporter: Houston Putman > Assignee: Houston Putman > Priority: Major > Labels: pull-request-available > Time Spent: 1.5h > Remaining Estimate: 0h > > Ever since the Http2SolrClient was introduced, if the client was set up to > use http2, then the {{maxConnectionsPerDestination}} was hardcoded to 4 and > could not be overridden. > This may have been due to a mis-reading of the > {{setMaxConnectionsPerDestination}} javadocs whichs states that browsers > generally use 2-6 requests per destination, and links to an RFC. However the > RFC linked to covers HTTP 1.1 and obviously Solr is not a browser. > A number of users have seen issues around slowness when using http2, and I > think this is a likely cause. Http2 will multiplex requests on a single > connection, however by default the number of requests that Jetty will > multiplex is somewhere around 300. (This is a very hard value to track down, > as the way it is determined is via a web of indirection) > So, for example, the HttpShardHandler defaults to 100,000 > maxConnectionsPerDestination. So the users using http1 will be able to get > that throughput. The users using http2 will have a max of roughly 1,200 (4 * > 300). Obviously there is going to be a massive performance implication. > So I think we should just use the same {{maxConnectionsPerDestination}} for > both http2 and http1. The http2 client will have the added benefit of using > multiplexing, and Jetty will likely do the right thing and not create tons of > connections when multiplexing can be used instead. -- 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