Re: putting a bgworker to rest - Mailing list pgsql-hackers

From Alvaro Herrera
Subject Re: putting a bgworker to rest
Date
Msg-id 20130423171126.GN2169@eldon.alvh.no-ip.org
Whole thread Raw
In response to Re: putting a bgworker to rest  (Andres Freund <andres@2ndquadrant.com>)
Responses Re: putting a bgworker to rest
List pgsql-hackers
Andres Freund wrote:
> On 2013-04-23 11:59:43 -0300, Alvaro Herrera wrote:
> > Andres Freund wrote:
> > > Hi all,
> > >
> > > I noticed the need to simply stop a bgworker after its work is done but
> > > still have it restart in unusual circumstances like a crash.
> > > Obviously I can just have it enter a loop where it checks its latch and
> > > such, but that seems a bit pointless.
> > >
> > > Would it make sense to add an extra return value or such for that?
> >
> > KaiGai also requested some more flexibility in the stop timing and
> > shutdown sequence.  I understand the current design that workers are
> > always on can be a bit annoying.
> >
> > How would postmaster know when to restart a worker that stopped?
>
> I had imagined we would assign some return codes special
> meaning. Currently 0 basically means "restart immediately", 1 means
> "crashed, wait for some time", everything else results in a postmaster
> restart. It seems we can just assign returncode 2 as "done", probably
> with some enum or such hiding the numbers.

So a "done" worker would never be restarted, until postmaster sees a
crash or is itself restarted?  I guess that'd be useful for workers
running during recovery, which terminate when recovery completes.  Is
that your use case?

--
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services



pgsql-hackers by date:

Previous
From: David Fetter
Date:
Subject: Bug Fix: COLLATE with multiple ORDER BYs in aggregates
Next
From: Andres Freund
Date:
Subject: Re: putting a bgworker to rest