On 7/21/2014 5:37 PM, Jeff Wartes wrote:
> I’d like to ensure an extended warmup is done on each SolrCloud node prior to 
> that node serving traffic.
> I can do certain things prior to starting Solr, such as pump the index dir 
> through /dev/null to pre-warm the filesystem cache, and post-start I can use 
> the ping handler with a health check file to prevent the node from entering 
> the clients load balancer until I’m ready.
> What I seem to be missing is control over when a node starts participating in 
> queries sent to the other nodes.
> 
> I can, of course, add solrconfig.xml firstSearcher queries, which I assume 
> (and fervently hope!) happens before a node registers itself in ZK 
> clusterstate.json as ready for work, but that doesn’t scale so well if I want 
> that initial warmup to run thousands of queries, or run them with some 
> paralleism. I’m storing solrconfig.xml in ZK, so I’m sensitive to the size.
> 
> Any ideas, or corrections to my assumptions?

I think that firstSearcher/newSearcher (and making sure useColdSearcher
is set to false) is going to be the only way you can do this in a way
that's compatible with SolrCloud.  If you were doing manual distributed
search without SolrCloud, you'd have more options available.

If useColdSearcher is set to false, that should keep *everything* from
using the searcher until the warmup has finished.  I cannot be certain
that this is the case, but I have some reasonable confidence that this
is how it works.  If you find that it doesn't behave this way, I'd call
it a bug.

Thanks,
Shawn

Reply via email to