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?