Hi Erick,

Thanks. We do have NRT requirement in our application that updates be
immediately visible. We do have constant updates. The push is for even
faster visibility but we are holding off at 2 secs soft-commit for now.

What I am not able to understand is that as per query debugging, the facet
processing time varies between a few ms to secs . Why would there be a
variability in facet processing time if they are based of docvalues and how
a newsearcher would help?

We do have 8 core CPU and lot of RAM in our server as we host multiple
collections.

On Mon, Mar 30, 2020 at 7:08 PM Erick Erickson <erickerick...@gmail.com>
wrote:

> Oh dear. Your autowarming is almost, but not quite totally, useless given
> your 2 second soft commit interval. See:
>
> https://lucidworks.com/post/understanding-transaction-logs-softcommit-and-commit-in-sorlcloud/
>
> So autowarming is probably not a cure, when you originally said “commit” I
> was assuming
> that was one that opened a new searcher, if that’s not true autowarming
> isn’t a cure.
>
> Do you _really_ require 2 second soft commit intervals? I would not be
> surprised if you also see “too many on deck searcher” warnings in your
> logs at times. This is one of my hot buttons, having very short soft commit
> intervals is something people do without understanding the tradeoffs,
> one of which is that your caches are probably getting a poor utilization
> rate. Often
> the recommendation for short intervals like this is to not use the caches
> at all.
>
> The newSearcher is a full query. Go ahead and add facets. But again, this
> probably
> isn’t going to help much.
>
> But really, revisit your autocommit settings. Taking 1.7 seconds to
> autowarm
> means that you have roughly this.
> - commit
> - 1.7 seconds later, the new searcher is open for business.
> - 0.3 seconds after that a new searcher is open, which takes another 1.7
> seconds to autowarm.
>
> I doubt your hard commit is really the culprit here _unless_ you’re
> running on an under-powered
> machine. The hard commit will trigger segment merging, which is CPU and
> I/O intensive. If
> you’re using a machine that can’t afford the cycles to be taken up by
> merging, that could account
> for what you see, but new searchers are being opened every 2 seconds
> (assuming a relatively
> constant indexing load).
>
> Best,
> Erick
>
> > On Mar 30, 2020, at 6:42 PM, Revas <revas2...@gmail.com> wrote:
> >
> > Thanks, Erick,
> >
> > The process time execution based on debugQuery between the query and
> facets
> > is as follows
> >
> > query 10ms
> > facets 4900ms
> >
> > since max time is spent on facet processing (docValues enabled), query
> and
> > filter cache do no apply to this, correct?
> >
> >
> >   -  Autowarm count is at 32 for both and autowarm time is 25 for
> >   query-result cache and  1724 for filter cache
> >   -  We have hard-commit every 5 mins with opensearcher=false and
> >   soft-commit every 2 secs.
> >   - facet are a mix of pivot facets,range facets and facet queries
> >   - when the same facets criteria bring a smaller result set, response is
> >   much faster
> >
> >
> >
> >
> > On Mon, Mar 30, 2020 at 4:47 PM Erick Erickson <erickerick...@gmail.com>
> > wrote:
> >
> >> OK, sounds like docValues is set.
> >>
> >> Sure, in solrconfig.xml, there are two sections “firstSearcher” and
> >> “newSearcher”.
> >> These are queries (or lists of queries) that are fired as part of
> >> autowarming
> >> when Solr is first started (firstSearcher) or when a commit happens that
> >> opens
> >> a new searcher (newSearcher). These are hand-crafted static queries. So
> >> create one or more newSearcher sections in that block that exercise your
> >> faceting and it’ll be fired as part of autowarming. That should smooth
> out
> >> the delay your user’s experience when commits happen.
> >>
> >> Best,
> >> Erick
> >>
> >>> On Mar 30, 2020, at 4:06 PM, Revas <revas2...@gmail.com> wrote:
> >>>
> >>> Thanks, Eric.
> >>>
> >>> 1) We are using dynamic string field for faceting where indexing =false
> >> and
> >>> stored=false . By default docValues are enabled for primitive fields
> >> (solr
> >>> 6.6.), so not explicitly defined in schema. Do you think its wrong
> >>> assumption? Also I do not this field listed in feild cache, but dont
> see
> >>> any dynamic fields listed.
> >>> 2) Autowarm count is at 32 for both and autowarm time is 25 for
> >> queryresult
> >>> and  17
> >>> 3)Can you elaborate what you mean here
> >>>
> >>>
> >>>
> >>> On Mon, Mar 30, 2020 at 1:43 PM Erick Erickson <
> erickerick...@gmail.com>
> >>> wrote:
> >>>
> >>>> Response spikes after commits are almost always something to do
> >>>> with autowarming or docValues being set to false. So here’s what
> >>>> I’d look at, in order.
> >>>>
> >>>> 1> are the fields used defined with docValues=true? They should be.
> >>>> With this much variance it sounds like you don’t have that value set.
> >>>> You’ll have to rebuild your entire index, first deleting all
> documents…
> >>>>
> >>>> You assert that they are all docValues, but the variance is so
> >>>> high that I wonder whether they _all_ are. They may very well be, but
> >>>> I’ve been tripped up by things I know are true that aren’t too often
> ;)
> >>>>
> >>>> You can insure this by setting 'uninvertible=“true” ‘ in your field
> >> type,
> >>>> see: https://issues.apache.org/jira/browse/SOLR-12962 if you’re on
> >>>> 7.6 or later.
> >>>>
> >>>> 2>what are your autowarming settings for queryResultCache and/or
> >>>> filterCache. Start with a relatively small number, say 16 and look at
> >>>> your autowarm times to insure they aren’t excessive.
> >>>>
> >>>> 3> if autowarming doesn’t help, consider specifying a newSearcher
> >>>> event in solrconfig.xml that exercises the facets.
> >>>>
> >>>> NOTE: <2> and <3> will mask any fields that are docValues=false that
> >>>> slipped through the cracks, so I’d double check <1> first.
> >>>>
> >>>> Best,
> >>>> Erick
> >>>>
> >>>>> On Mar 30, 2020, at 12:20 PM, sujatha arun <revas2...@gmail.com>
> >> wrote:
> >>>>>
> >>>>> A facet heavy query which uses docValue fields for faceting  returns
> >>>> about
> >>>>> 5k results executes between  10ms to 5 secs and the 5 secs time seems
> >> to
> >>>>> coincide with after a hard commit.
> >>>>>
> >>>>> Does that have any relation? Why the fluctuation in execution time?
> >>>>>
> >>>>> Thanks,
> >>>>> Revas
> >>>>
> >>>>
> >>
> >>
>
>

Reply via email to