Hmmm, rather than hit the ping query, why not just send in a real query and
only let the queued ones through after the response?

Just a random thought
Erick


On Sat, Nov 10, 2012 at 2:53 PM, Amit Nithian <anith...@gmail.com> wrote:

> Yes but the problem is that if user facing queries are hitting a server
> that is warming up and isn't being serviced quickly, then you could
> potentially bring down your site if all the front end threads are blocked
> on Solr queries b/c those queries are waiting (presumably at the container
> level since the filter hasn't finished its init() sequence) for the warming
> to complete (this is especially notorious when your front end is rails).
> This is why your ping to enable/disable a server from the load balancer has
> to be accurate with regards to whether or not a server is truly ready and
> warm.
>
> I think what I am gathering from this discussion is that the server is
> warming up, the ping is going through and tells the load balancer this
> server is ready, user queries are hitting this server and are queued
> waiting for the firstSearcher to finish (say these initial user queries are
> to respond in 500-1000ms) that's terrible for performance.
>
> Alternatively, if you have a bunch of servers behind a load balancer, you
> want this one server (or block of servers depending on your deployment) to
> be reasonably sure that user queries will return in a decent time (whatever
> you define decent to be) hence why this matters.
>
> Let me know if I am missing anything.
>
> Thanks
> Amit
>
>
> On Sat, Nov 10, 2012 at 10:03 AM, Erick Erickson <erickerick...@gmail.com
> >wrote:
>
> > Why does it matter? The whole idea of firstSearcher queries is to warm up
> > your system as fast as possible. The theory is that upon restarting the
> > server, let's bet this stuff going immediately... They were never
> intended
> > (as far as I know) to complete before any queries were handled. As an
> > aside, I'm not quite sure I understand why pings during the warmup are a
> > problem.
> >
> > But anyway. firstSearcher is particularly relevant because the
> > autowarmCount settings on your caches are irrelevant when starting the
> > server, there's no history to autowarm....
> >
> > But, there's no good reason _not_ to let queries through while
> > firstSearcher is doing it's tricks, they just get into the queue and are
> > served as quickly as they may. That might be some time since, as you say,
> > they may not get serviced until the expensive parts get filled. But I
> don't
> > think having them be serviced is doing any harm.
> >
> > Now, newSearcher and autowarming of the caches is a completely different
> > beast since having the old searchers continue serving requests until the
> > warmups _does_ directly impact the user, they don't see random slowness
> > because a searcher is being opened.
> >
> > So I guess my real question is whether you're seeing a measurable problem
> > or if this is a red herring....
> >
> > FWIW,
> > Erick
> >
> >
> > On Thu, Nov 8, 2012 at 2:54 PM, Aaron Daubman <daub...@gmail.com> wrote:
> >
> > > Greetings,
> > >
> > > I have several custom QueryComponents that have high one-time startup
> > costs
> > > (hashing things in the index, caching things from a RDBMS, etc...)
> > >
> > > Is there a way to prevent solr from accepting connections before all
> > > QueryComponents are "ready"?
> > >
> > > Especially, since many of our instance are load-balanced (and
> > > added-in/removed automatically based on admin/ping responses)
> preventing
> > > ping from answering prior to all custom QueryComponents being ready
> would
> > > be ideal...
> > >
> > > Thanks,
> > >      Aaron
> > >
> >
>

Reply via email to