Hi,

I wanted to know in detail on how it is http connections are handled in
Solr.

1. From my code, I am using CloudSolrServer of solrj client library to get
the connection. From one of my previous discussion in this forum, I
understood that Solr uses Apache's HttpClient for connections and the
default maxConnections per host is 32 and default max connections is 128.


*CloudSolrServer cloudSolrServer = new CloudSolrServer(<zookeeper_quorum>);*

*cloudSolrServer.connect();*
My first question here is what does this maxConnectionsperHost and
maxConnections imply? Are these the connections from solrj client to the
Zookeeper quorum OR from solrj client to the solr nodes?

2. CloudSolrServer uses LBHttpSolrServer which does send requests in round
robin fashion, i.e., first request to node1, 2nd request to node2 etc. If
the answer to the above question is "from solrj client to the solr nodes",
then does the http connection pool to the solr nodes from solrj client will
be created for the first request to a particular solr node during round
robin?

3. Consider in my solr cloud I have one collection with 8 shards spread on
4 solr nodes. My understanding is that solrj client will send a query to
one the solr core ( eg:solr core1) residing in one of the solr node (eg:
node1). The solr core1 is responsible for sending queries to all the 8 Solr
cores of that collection. Once it gets the response from all the solr
cores, it merges the data and returns to the client. In this process, how
the http connections between one solr node and rest of solr nodes are
handled.

Does Solr maintains a connection pool here between Solr nodes? If so, when
the connection pool is created between the Solr nodes?

Thanks,
Manohar

Reply via email to