From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | Andres Freund <andres(at)2ndquadrant(dot)com> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: putting a bgworker to rest |
Date: | 2013-04-23 17:11:26 |
Message-ID: | 20130423171126.GN2169@eldon.alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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
From | Date | Subject | |
---|---|---|---|
Next Message | Paul Hinze | 2013-04-23 17:14:16 | Simultaneous index creates on different schemas cause deadlock? |
Previous Message | David Fetter | 2013-04-23 16:57:27 | Bug Fix: COLLATE with multiple ORDER BYs in aggregates |