| From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
|---|---|
| To: | "Aya Iwata (Fujitsu)" <iwata(dot)aya(at)fujitsu(dot)com> |
| Cc: | Michael Paquier <michael(at)paquier(dot)xyz>, Peter Smith <smithpb2250(at)gmail(dot)com>, Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>, "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: [PROPOSAL] Termination of Background Workers for ALTER/DROP DATABASE |
| Date: | 2025-12-17 15:33:16 |
| Message-ID: | CAFj8pRCn0=jn4yaeg1JoxxxnUNeXm1KCouES8Puq_GgBsXrNTQ@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi
st 17. 12. 2025 v 14:31 odesílatel Aya Iwata (Fujitsu) <
iwata(dot)aya(at)fujitsu(dot)com> napsal:
> Hi Pavel-san,
>
> >> So maybe there should be ALTER DATABASE ... RENAME ... FORCE - or if
> FORCE can terminare all workers (without special FLAG) ?
> >
> > For the proposed feature, we've added a flag allowing each extension
> developer to decide whether to terminate it via DROP/ALTER DATABASE.
> > Adding a FORCE option to ALTER to let database definition modifiers
> decide whether to force termination of background workers might be better
> discussed in a separate thread.
> >
> > When I thought about it - there can be a second alternative.
> >
> > Introduce a pair of flags BGWORKER_INTERRUPTABLE and BGWORKER_PROTECTED
> (the names can be enhanced or changed). BGWORKER_INTERRUPTABLE can be
> default.
> > ALTER DATABASE RENAME and related commands can stop any non protected
> workers. ALTER DATABASE RENAME FORCE can stop any workers (including
> protected).
>
> I can't image any use cases for BGWORKER_PROTECTED. Do you have any idea?
> Also, I think the parameter settings might get a complicated.
> If we start discussing the "FORCE" option, it is better to think about
> this parameter.
>
> > Is there any reason why BGWORKER_INTERRUPTABLE cannot be default?
> Probably nobody would block some possibly common operations on database
> level without strong reason.
>
> As Michael-san mentioned in a previous email, this behavior has remained
> unchanged since bgworkers were introduced in v9.3.
> I don't see a compelling reason to alter it now. Additionally, this
> specification can be modified later.
>
I understand the request for unchanging behaviour - but I am not sure if
this concept is really helpful - or if the naming is best. I am afraid so
this feature without changing the workers code is useless (and maybe it is
wanted).
Any worker should be interruptable by sigterm. And then the
name BGWORKER_INTERRUPTABLE is little bit vague. Maybe some
like BGWORKER_CAREFREE_INTERRUPTABLE can be better (or some like this -
maybe BGWORKER_CANCELABLE)? This can be a signal from bgworker's authors -
it is ok to kill the worker anytime when it is necessary.
Some workers can have the flag BGW_NEVER_RESTART - cannot be used as signal
so this worker is protected, and others can be terminated safely, because
they will be restarted after 60 seconds?
Regards
Pavel
>
> Best Regards,
> Aya Iwata
>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Melanie Plageman | 2025-12-17 15:39:05 | Re: Checkpointer write combining |
| Previous Message | Ashutosh Bapat | 2025-12-17 15:31:04 | Re: [PATCH] Add regression test for aggregate NULL behavior |