RE: [PROPOSAL] Termination of Background Workers for ALTER/DROP DATABASE
Aya Iwata (Fujitsu) <iwata.aya@fujitsu.com>
From: "Aya Iwata (Fujitsu)" <iwata.aya@fujitsu.com>
To: 'Pavel Stehule' <pavel.stehule@gmail.com>, Michael Paquier <michael@paquier.xyz>
Cc: Peter Smith <smithpb2250@gmail.com>, Chao Li <li.evan.chao@gmail.com>, "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-12-15T12:56:22Z
Lists: pgsql-hackers
Attachments
- v0010-0001-Allow-background-workers-to-be-terminated.patch (application/octet-stream)
Hi Thank you for your review. > From: Pavel Stehule <pavel.stehule@gmail.com> > Sent: Sunday, December 14, 2025 4:40 PM > To: Michael Paquier <michael@paquier.xyz> > Cc: Iwata, Aya/岩田 彩 <iwata.aya@fujitsu.com>; Peter Smith <smithpb2250@gmail.com>; Chao Li <li.evan.chao@gmail.com>; Kuroda, Hayato/黒田 隼人 <kuroda.hayato@fujitsu.com>; pgsql-hackers <pgsql-hackers@postgresql.org> > 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. Best Regards, Aya Iwata