Change the docs for PARALLEL option of Vacuum.

The rules to choose the number of parallel workers to perform parallel
vacuum operation were not clearly specified.

Reported-by: Peter Eisentraut
Author: Amit Kapila
Backpatch-through: 13, where it was introduced
Discussion: https://postgr.es/m/36aa8aea-61b7-eb3c-263b-648e0cb117b7@2ndquadrant.com
This commit is contained in:
Amit Kapila 2020-10-19 09:13:17 +05:30
parent ca2a12c935
commit 560d260d78
1 changed files with 16 additions and 16 deletions

View File

@ -235,22 +235,22 @@ VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [ <replaceable class="paramet
Perform index vacuum and index cleanup phases of <command>VACUUM</command> Perform index vacuum and index cleanup phases of <command>VACUUM</command>
in parallel using <replaceable class="parameter">integer</replaceable> in parallel using <replaceable class="parameter">integer</replaceable>
background workers (for the details of each vacuum phase, please background workers (for the details of each vacuum phase, please
refer to <xref linkend="vacuum-phases"/>). In plain <command>VACUUM</command> refer to <xref linkend="vacuum-phases"/>). The number of workers used
(without <literal>FULL</literal>), if the <literal>PARALLEL</literal> option to perform the operation is equal to the number of indexes on the
is omitted, then the number of workers is determined based on the number of relation that support parallel vacuum which is limited by the number of
indexes on the relation that support parallel vacuum operation and is further workers specified with <literal>PARALLEL</literal> option if any which is
limited by <xref linkend="guc-max-parallel-maintenance-workers"/>. An index further limited by <xref linkend="guc-max-parallel-maintenance-workers"/>.
can participate in parallel vacuum if and only if the size of the index is An index can participate in parallel vacuum if and only if the size of the
more than <xref linkend="guc-min-parallel-index-scan-size"/>. Please note index is more than <xref linkend="guc-min-parallel-index-scan-size"/>.
that it is not guaranteed that the number of parallel workers specified in Please note that it is not guaranteed that the number of parallel workers
<replaceable class="parameter">integer</replaceable> will be used during specified in <replaceable class="parameter">integer</replaceable> will be
execution. It is possible for a vacuum to run with fewer workers than used during execution. It is possible for a vacuum to run with fewer
specified, or even with no workers at all. Only one worker can be used per workers than specified, or even with no workers at all. Only one worker
index. So parallel workers are launched only when there are at least can be used per index. So parallel workers are launched only when there
<literal>2</literal> indexes in the table. Workers for vacuum are launched are at least <literal>2</literal> indexes in the table. Workers for
before the start of each phase and exit at the end of the phase. These vacuum are launched before the start of each phase and exit at the end of
behaviors might change in a future release. This option can't be used with the phase. These behaviors might change in a future release. This
the <literal>FULL</literal> option. option can't be used with the <literal>FULL</literal> option.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>