Thanks for all of your responses - did some more research - and here is an
observation:
I am seeing an inconsistency in the QTime in the SolrQueryResponse object
returned to the Client App Versus the value of the QTime printed in the
Solr.log.

Here is one specific instance:
                Value of QTime in SolrQueryResponse object is 5023 ms as
seen by the Client App
                Value of QTime printed in Solr.log - 6ms

Why is there such a huge inconsistency?

Have the following theory - please help validate:
1. The SolrQuery (via SolrJ) from the Client App - hits a Solr TomcatNode
(lets call this Node 1) that does NOT contain the shard where the data is
supposed to reside ON.
                a) P.S. - I use a Document Co-Location strategy so that
documents belonging to a single customer reside in a single shard - I use
the shard.keys in the query - so that searches are limited to a single shard
                b) This would mean that my Search Queries will sail through
a maximum of 2 nodes in the cluster
2. Node 1 forwards the search request to the correct node (lets call this
Node 2) that contains the shard that needs to be looked up
                a) For some reason - Node 1 is taking too long to send the
request to Node 2 (Maybe a firewall or network issue?? - How do I even find
out ?? Should I be seeing anything in the logs if such an issue were to
happen?)
                b) This delay causes the request to reach Node 2 with a 5
second delay
                c) Node 2 executes the query in 6 ms - and returns the
response back to Node 1 immediately
3. I am also noticing the following:
                a) The absolute time when Node 2 logs the Qtime in Solr.log
and the absolute time that Client App prints the QTime from the
SolrQueryResponse more or less match - there is a difference of only a few
milliseconds
                b) Does this prove beyond doubt that the query reached Node
2 with a delay of 5 seconds ??
                c) The one thing I don't understand is that if the query
request took 5 seconds to reach Node 2 from Node 1 - then how is it that the
response from Node 2 is being sent back to Node 1 (and finally to the Client
App) with NO further delays (assuming there was a network issue). Somehow
seems like the delays is only affecting the request message brokering

One final question:
1. In a Solr Cloud Setup does the QTime in the SolrQueryResponse include
both the Query Execution Time + time taken for network communication between
Solr nodes in case the query arrived at the wrong shard ?
                a) This is the only way I can explain seeing different
values of QTime in the Solr.log and at the Client App (via the QTime in
SolrQueryResponse)
                b) A lot of documentation states that QTime is a measure of
the pure query execution time - but this is probably true only in a non-Solr
CLoud setup.

Appreciate additional inputs on this subject.




--
View this message in context: 
http://lucene.472066.n3.nabble.com/Slow-QTimes-5-seconds-for-Small-sized-Collections-tp4143681p4144393.html
Sent from the Solr - User mailing list archive at Nabble.com.

Reply via email to