: I'd still love to see a query lifecycle flowchart, but, in case it
: helps any future users or in case this is still incorrect, here's how
: I'm tackling this:

part of the problem is deciding what you mean by "lifecycle" - as far as 
the SolrCore is concerned, the lifecycle of hte request is it's execute 
method -- after that there is still respons writing, but SolrCore doesn't 
really care about that.

>From the perspective of SolrDispatchFilter, the lifecycle is longer, as 
the REsponseWRiter is used to format the response.

>From the perspective of the servlet container, the lifecycle might be even 
longer, as the client may be slow to read bytes off the wire, so the 
SolrDispatchFilter & ResponseWriter may be completley done with the 
response, but the ServletContainer may not yet have written all the bytes 
back to the client.

That's why most people looking for the "full response time" usually get 
this info from the ServletContainer (logs), because it's the only place 
that knows for certain when the request is *DONE* done.

: Please advise if:
: - Flowcharts for any solr/lucene-related lifecycles exist

Jan made a pretty decent stab at this a while back, which is good for an 
"end user" perspective but isn't super detailed...

http://www.cominvent.com/nb/2011/04/04/solr-architecture-diagram/

: - There is a better way of doing this

If i were attempting to solve this problem, i probably would have tried to 
implement it as a simple Servlet Filter that wrapped the 
ServletOutputStream in somethng that would have done hte logging on 
close().  (so that it could be re-used by any ResponseWriter)

-Hos

Reply via email to