We're using Solr version 4.2.1, in case new functionality has helped with this issue.

We have our Solr servers doing automatic soft commits with maxTime=1000. We also have a scheduled job that triggers a hard commit every fifteen minutes. When one of these hard commits happens while a soft commit is already in progress, we get that ubiquitous warning:

PERFORMANCE WARNING: Overlapping onDeckSearchers=2

Recently, we had an occasion to have a second scheduled job also issue a hard commit every now and then. Since our maxWarmingSearchers value was set to the default, 2, we occasionally had a hard commit trigger when two other searchers were already warming up, which led to this:

org.apache.solr.client.solrj.SolrServerException: No live SolrServers available to handle this request

as the servers started responded with a 503 HTTP response.

It seems like automatic soft commits wait until the hard commits are out of the way before they proceed. Is there a way to do the same for hard commits? Since we're passing waitSearcher=true in the update request that triggers the hard commits, I would expect the request to block until the server had enough headroom to service the commit. I did not expect that we'd start getting 503 responses.

Is there a way to pull this off, either via some extra request parameters or via some server-side configuration?

Reply via email to