Re: POC: Parallel processing of indexes in autovacuum

Alexander Korotkov <aekorotkov@gmail.com>

From: Alexander Korotkov <aekorotkov@gmail.com>
To: Daniil Davydov <3danissimo@gmail.com>
Cc: Masahiko Sawada <sawada.mshk@gmail.com>, SATYANARAYANA NARLAPURAM <satyanarlapuram@gmail.com>, Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>, Sami Imseih <samimseih@gmail.com>, Matheus Alcantara <matheusssilv97@gmail.com>, Maxim Orlov <orlovmg@gmail.com>, Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-04-01T12:10:39Z
Lists: pgsql-hackers
Hi, Daniil!

On Wed, Apr 1, 2026 at 10:44 AM Daniil Davydov <3danissimo@gmail.com> wrote:
> Thank you very much for your comments!
> Please, see an updated patch.

Thank you for your work on this subject!  I've some notes about the patch.

1) The changes in guc.c allows autovacuum parallel leader to accept
changes in not just cost-based GUCs, but any GUCs.  That should be no
problem, because parallel workers have their own copies of GUC
variables, but I think this worth comment.

2) Maximum value for autovacuum_parallel_workers reloption is defined
as literally 1024, while max value for autovacuum_max_parallel_workers
is defined as MAX_PARALLEL_WORKER_LIMIT (also 1024).  Should we define
max value for reloption as MAX_PARALLEL_WORKER_LIMIT as well?

3) Some paragraphs were moved from vacuum.sgml to maintenance.sgml.
It particular it references <replaceable
class="parameter">integer</replaceable, which is related to PARALLEL
option syntax: (PARALLEL integer).  Now it becoming unclear and needs
to be revised.

4) I also think  maintenance.sgml should mention the new reloption.

5) I think it worth having a test which check that setting
autovacuum_parallel_workers to 0 disables the parallel autovacuum for
given table.

6) Minor grammar issue in PVSharedCostParams comment, it must be
"vacuum workers compare" (plural subject).

------
Regards,
Alexander Korotkov
Supabase



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Allow autovacuum to use parallel vacuum workers.

  2. Add parallel vacuum worker usage to VACUUM (VERBOSE) and autovacuum logs.

  3. doc: Put new options in consistent order on man pages