Hello Andy, On Tue, Nov 13, 2012 at 1:26 PM, Andy Lester <a...@petdance.com> wrote:
> We're getting close to deploying our Solr search solution, and we're doing > performance testing, and we've run into some questions and concerns. > > Our number one problem: Doing a commit from loading records, which can > happen throughout the day, makes all queries stop for 5-7 seconds. This is > a showstopper for deployment. > > Here's what we've observed: Upon commit, Solr finishes processing queries > in flight, starts up a new searcher, warms it, shuts down the old searcher > and puts the new searcher into effect. Does the old searcher stop taking > requests before the new searcher is warmed or after? How wide is the window > of time wherein Solr is not serving requests? For us, it's about five > seconds and we need to drop that dramatically. In general, what is the > difference between accepting the delay of waiting for warming vs. accepting > the delay of running useColdSearcher=true? > Old searcher is used while the new one is being warmed up. Solr should always be serving requests - it's not designed to have a a moment when it's not serving them because of searcher swap. Don't use cold searcher - the first unlucky user will pay the price and will likely block all other queries for a while. Your queries probably don't actually stop for 5-7 seconds, they just slow down. Look at your system's performance metrics during this period. GC high? Disk IO high? CPU high? > Is there any such thing as/any sense in running more than one searcher in > our scenario? What are the benefits of multiple searchers? Erik Erikson > posts in 2012: "Unless you have warming happening, there should only be a > single searcher open at any given time." Except: "If your queries run > across several commits you'll get multiple searchers open." Not sure if > this is a general observation, or specific to the particular poster's > situation. > > Finally, what do people mean when they blog that they have Solr set up for > "n threads"? Is that the same thing as saying that Solr can be processing n > requests simultaneously? > Not sure what they mean :) It is the servlet container that deals with threads, not Solr. Maybe this is referring to indexing with N threads in parallel to speed up indexing (in pre-Solr 4.0 days). > Thanks for any insight or even links to relevant pages. We've been > Googling all over and haven't found answers to the above. Try http://search-lucene.com If you are doing performance testing and warming is a concern, one of the reports in SPM for Solr shows where warming time is being spent - on which caches or on the searcher, and how much time goes on each. Oh, which reminds me - it is also possible your cache settings are such that they require a lot of warming and it is possible that your warmup queries are too heavy or numerous. Otis -- Solr Performance Monitoring - http://sematext.com/spm/index.html Search Analytics - http://sematext.com/search-analytics/index.html