Re: parallel vacuum comments

Masahiko Sawada <sawada.mshk@gmail.com>

From: Masahiko Sawada <sawada.mshk@gmail.com>
To: "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>, Amit Kapila <amit.kapila16@gmail.com>, Peter Geoghegan <pg@bowt.ie>, Andres Freund <andres@anarazel.de>
Date: 2021-11-16T05:53:18Z
Lists: pgsql-hackers

Attachments

On Tue, Nov 16, 2021 at 11:38 AM houzj.fnst@fujitsu.com
<houzj.fnst@fujitsu.com> wrote:
>
> On Thur, Nov 11, 2021 10:41 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote:
> > I've attached a draft patch that refactors parallel vacuum and separates
> > parallel-vacuum-related code to new file vacuumparallel.c.
> > After discussion, I'll divide the patch into logical chunks.
>
> Hi.
>
> I noticed few minor issues in the patch.
>
> 1)
> +               /*
> +                * Parallel unsafe indexes can be processed only by leader (these are
> +                * processed in lazy_serial_process_indexes() by leader.
> +                */
>
> It seems the function name in the comments should be serial_vacuum_unsafe_indexes
>
> 2)
> +               stats->parallel_workers_can_process =
> +                       index_parallel_vacuum_is_safe(pvc->indrels[i],
> +                                                                                 pvc->num_index_scans,
> +                                                                                 bulkdel);
>
> The function index_parallel_vacuum_is_safe also return false for the
> index < min_parallel_index_scan_size cutoff which seems parallel safe. So,
> maybe we can rename the function to xxx_worker_can_process() ?

Thank you for the comments!

I've incorporated these comments and attached an updated patch.

Regards,

--
Masahiko Sawada
EDB:  https://www.enterprisedb.com/

Commits

  1. Move parallel vacuum code to vacuumparallel.c.

  2. Move index vacuum routines to vacuum.c.

  3. Improve parallel vacuum implementation.

  4. Fix parallel amvacuumcleanup safety bug.

  5. Simplify state managed by VACUUM.