po 15. 12. 2025 v 13:56 odesílatel Aya Iwata (Fujitsu) <
[email protected]> napsal:

> Hi
>
> Thank you for your review.
>
> > From: Pavel Stehule <[email protected]>
> > Sent: Sunday, December 14, 2025 4:40 PM
> > To: Michael Paquier <[email protected]>
> > Cc: Iwata, Aya/岩田 彩 <[email protected]>; Peter Smith <
> [email protected]>; Chao Li <[email protected]>; Kuroda,
> Hayato/黒田 隼人 <[email protected]>; pgsql-hackers <
> [email protected]>
> > Subject: Re: [PROPOSAL] Termination of Background Workers for ALTER/DROP
> DATABASE
> >
> > +#define BGWORKER_EXIT_AT_DATABASE_CHANGE       0x0004
> >
> > I am checking this patch, and I think so used names can be little bit
> confusing
> >
> > BGWORKER_EXIT_AT_DATABASE_CHANGE - it is used for disconnecting workers
> on the template database, and this database is not changing.
> >
> > TerminateBgWorkersByDbOid - it doesn't terminate all workers, but only
> workers with some special flags
> >
> > Maybe BGWORKER_INTERRUPTABLE and TerminateInterruptableBgWorkersByDbOid ?
>
> Thank you for your advice.
> I changed the name of a function and a flag.
>
> > Another question is if this cancellation should be implicit and should
> not require some special flag.
> >
> > When I want to disconnect connections to database when I do drop, I have
> to use FORCE flag
> >
> > 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).

Is there any reason why BGWORKER_INTERRUPTABLE cannot be default? Probably
nobody would block some possibly common operations on database level
without strong reason.

Regards

Pavel






> Best Regards,
> Aya Iwata
>

Reply via email to