Hi,

We're getting a lot of these timeouts during bulk feeding or a large
document set. We're sending batches of 1000 documents and commiting every 15
minutes or for every 10.000 docs, whichever happens first. We find that the
first few commits (after 10'/20'/30' docs) go through without exceptions
(although the "CommonsHttpSolrServer.soTimeout" is set quite high -
120000ms). The time for a commit to complete seems to increase for every
subsequent commit request, and eventually the timeout value is reached
causing Solrj to throw the java.net.SocketTimeoutException. Increasing the
soTimeout value only delays the problem and it will allow us to send a few
more commits before seeing the exception.

I've noticed that even though we get these exceptions on commit, documents
seem to be searchable after some time. Does that mean that the commit
process in solr continues even though the socket times out?

We're also setting "waitFlush=false" and  "waitSearcher=false" when
committing, which I would expect to enable a non-blocking commit request to
solr, but on n+1 commits this doesn't aleays happen and this when we're
getting the timeouts.

I suspect that solr.commit(false,false) is a non-blocking call only if a all
previous commits are complete. Correct?

I'm aware that commiting often is not adviced as it is a resouce intensive
process for solr, however it is a requirement that documents are searchable
before the entire document set has been added to solr. Our workaround is to
limit the amount of commits by time and document count "triggers" in our
code. We cannot use the autocommit feature in solrconfig.xml because we also
need to be able to issue immediate commits for incremental feeding.

So, my main question is regarding the severity of
"java.net.SocketTimeoutException: Read timed out" on commit. Should I worry
and try to re-issue commit when this happens, or is it safe to ignore it?


Thanks for any input!

Cheers,
Geir

Reply via email to