lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hendrik Haddorp <hendrik.hadd...@gmx.net>
Subject CloudSolrClient getDocCollection
Date Thu, 07 Feb 2019 16:44:37 GMT
Hi,

when I perform a query using the CloudSolrClient the code first 
retrieves the DocCollection to determine to which instance the query 
should be send [1]. getDocCollection [2] does a lookup in a cache, which 
has a 60s expiration time [3]. When a DocCollection has to be reloaded 
this is guarded by a lock [4]. Per default there are 3 locks, which can 
cause some congestion. The main question though is why does the client 
need that timeout? According to this [5] comment the code does not use a 
watch. Wouldn't it make sense to use a watch? I thought the big 
advantage of the CloudSolrClient is that is knows were to send requests 
to, so that no extra hop needs to be done on the server side. Having to 
query ZooKeeper though for the current state does however take some of 
that advantage.

regards,
Hendrik

[1] 
https://github.com/apache/lucene-solr/blob/master/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java#L849
[2] 
https://github.com/apache/lucene-solr/blob/master/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java#L1180
[3] 
https://github.com/apache/lucene-solr/blob/master/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java#L162
[4] 
https://github.com/apache/lucene-solr/blob/master/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java#L1200
[5] 
https://github.com/apache/lucene-solr/blob/master/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java#L821

Mime
View raw message