[ https://issues.apache.org/jira/browse/SOLR-17240?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17838863#comment-17838863 ]
Sanjay Dutt commented on SOLR-17240: ------------------------------------ We have established in this ticked already that maxConnectionsPerDestination for http1 and http2 has different meaning. If we started using the DEFAULT_MAXCONNECTIONSPERHOST for both http1 and http2, Does that mean that there is a possibility that number of connection that http2 can open in comparison to http1 with this setting would overwhelm the Solr? And should we consider creating a different variable for http2? and set a different default value to it, along with a added documentation for more information. > 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 > Security Level: Public(Default Security Level. Issues are Public) > Components: SolrJ > Affects Versions: 8.0 > Reporter: Houston Putman > Assignee: Houston Putman > Priority: Major > Time Spent: 10m > 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