Re: parallel vacuum - few questions on docs, comments and code - Mailing list pgsql-hackers

From Dilip Kumar
Subject Re: parallel vacuum - few questions on docs, comments and code
Date
Msg-id CAFiTN-sva3oGy=Tsmtzzd_jkDESPVU8QjAU-x+SQtRhaS=Sk4Q@mail.gmail.com
Whole thread Raw
In response to parallel vacuum - few questions on docs, comments and code  (Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>)
List pgsql-hackers
On Tue, May 11, 2021 at 5:38 PM Bharath Rupireddy
<bharath.rupireddyforpostgres@gmail.com> wrote:
>
> Hi,
>
> I was going through the parallel vacuum docs and code. I found below
> things, please someone clarify:
>
> 1) I see that  a term "parallel degree" is used in the docs, code
> comments, error messages "parallel vacuum degree must be a
> non-negative integer", "parallel vacuum degree must be between 0 and
> %d". Is there any specific reason to use the term "parallel degree"?
> In the docs and code comments we generally use "parallel workers".

I think using "parallel workers" will be more consistent.

> 2) The error messages "parallel vacuum degree must be between 0 and
> %d" and "parallel option requires a value between 0 and %d" look
> inconsistent.

+1

> 3) Should the Assert(nindexes > 0); in begin_parallel_vacuum just be
> Assert(nindexes > 1); as this function is entered only when indexes
> are > 1?
> 4) IIUC, below comment says that even if PARALLEL 0 is specified with
> VACUUM command, there are chances that the indexes are vacuumed in
> parallel. Isn't it a bit unusual that a user specified 0 workers but
> still the system is picking up parallelism? I'm sure this would have
> been discussed, but I'm curious to know the reason.
>  * nrequested is the number of parallel workers that user requested.  If
>  * nrequested is 0, we compute the parallel degree based on nindexes, that is
>  * the number of indexes that support parallel vacuum.
> 5) Can the parallel_workers in below condition ever be negative in
> begin_parallel_vacuum? I think we can just have if (parallel_workers
> == 0).
>     /* Can't perform vacuum in parallel */
>     if (parallel_workers <= 0)

Yes it should if (parallel_workers == 0)

> 8) Is it still true that if parallel workers are specified as 0 the
> parallelism will not be picked up?
> From the docs: This feature is known as parallel vacuum. To disable
> this feature, one can use PARALLEL option and specify parallel workers
> as zero.

Yes, by default this is enabled so for disabling user need to give
PARALLEL as 0.


--
Regards,
Dilip Kumar
EnterpriseDB: http://www.enterprisedb.com



pgsql-hackers by date:

Previous
From: Etsuro Fujita
Date:
Subject: Re: Asynchronous Append on postgres_fdw nodes.
Next
From: Kyotaro Horiguchi
Date:
Subject: Re: compute_query_id and pg_stat_statements