Thanks, Chris. Adding autoWarming to the filter cache made another big  
improvement.

Between increasing the soft commit to 60s, fixing the q:* query, and 
autowarming the filter caches my 95% latencies are down to a very acceptable 
range — almost an order of magnitude improvement. :-)

-Allan

On February 18, 2014 at 5:32:51 PM, Chris Hostetter (hossman_luc...@fucit.org) 
wrote:


: Slowing the soft commits to every 100 seconds helped. The main culprit  
: was a bad query that was coming through every few seconds. Something  
: about the empty fq param and the q=* slowed everything else down.  
:  
: INFO: [event] webapp=/solr path=/select  
: params={start=0&q=*&wt=javabin&fq=&fq=startTime:1392836400003&version=2}  
: hits=1894 status=0 QTime=6943  

1) if you are using Solr 4.1 or earlier, then q=* is an expensive &  
useless query that doesn't mean what you think it does...  

https://issues.apache.org/jira/browse/SOLR-2996  

2) an empty "fq" doesn't cost anything -- if you use debugQuery=true you  
should see that it's not even included in "parsed_filter_queries" because  
it's totally ignored.  

3) if that "startTime" value changes at some fixed and regular  
interval, that could explain some anomoloies if it's normally the  
same and cached, but changes once a day/hour/minute or whatever and is a  
bit slow to cache.  


bottom line: a softCommit is going to re-open a searcher, which is going  
to wipe your caches. if you don't have any (auto)warming configured, that  
means any "fq"s, or "q"s that you run regularly are going to pay the  
price of being "slow" the first time they are run against a new searcher  
is opened.  

If your priority is low response time, you really want to open new  
searchers as infrequently as your SLA for visibility allows, and use  
(auto)warming for those common queries.  



-Hoss  
http://www.lucidworks.com/  

Reply via email to