Affects Version/s: 6.3
Fix Version/s: None
Component/s: clients - java
For a user query we make several solr queries that differ only slightly and therefore should use/reuse objects cached from the first query (we're using a custom request handler and custom caches).
Thus such subsequent queries should hit the same solr server.
The implemented solution looks like this:
- The client obtains a live SolrServer from LBHttpSolrServer
- The client provides this SolrServer as preferred server for a query
- If the preferred server is no longer alive the request is retried on another live server
- Everything else follows the existing logic:
- After live servers are exhausted, any servers previously marked as dead will be tried before failing the request
- If no live servers are found a SolrServerException is thrown
The implementation is also on github.