pgsql: Allow vacuum command to process indexes in parallel.

Поиск
Список
Период
Сортировка
От Amit Kapila
Тема pgsql: Allow vacuum command to process indexes in parallel.
Дата
Msg-id E1itMsg-0005Kj-7h@gemulon.postgresql.org
обсуждение исходный текст
Ответы Re: pgsql: Allow vacuum command to process indexes in parallel.  (Andres Freund <andres@anarazel.de>)
Список pgsql-committers
Allow vacuum command to process indexes in parallel.

This feature allows the vacuum to leverage multiple CPUs in order to
process indexes.  This enables us to perform index vacuuming and index
cleanup with background workers.  This adds a PARALLEL option to VACUUM
command where the user can specify the number of workers that can be used
to perform the command which is limited by the number of indexes on a
table.  Specifying zero as a number of workers will disable parallelism.
This option can't be used with the FULL option.

Each index is processed by at most one vacuum process.  Therefore parallel
vacuum can be used when the table has at least two indexes.

The parallel degree is either specified by the user or determined based on
the number of indexes that the table has, and further limited by
max_parallel_maintenance_workers.  The index can participate in parallel
vacuum iff it's size is greater than min_parallel_index_scan_size.

Author: Masahiko Sawada and Amit Kapila
Reviewed-by: Dilip Kumar, Amit Kapila, Robert Haas, Tomas Vondra,
Mahendra Singh and Sergei Kornilov
Tested-by: Mahendra Singh and Prabhat Sahu
Discussion:
https://postgr.es/m/CAD21AoDTPMgzSkV4E3SFo1CH_x50bf5PqZFQf4jmqjk-C03BWg@mail.gmail.com
https://postgr.es/m/CAA4eK1J-VoR9gzS5E75pcD-OH0mEyCdp8RihcwKrcuw7J-Q0+w@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/40d964ec997f64227bc0ff5e058dc4a5770a70a9

Modified Files
--------------
doc/src/sgml/config.sgml              |   18 +-
doc/src/sgml/ref/vacuum.sgml          |   61 +-
src/backend/access/heap/vacuumlazy.c  | 1256 ++++++++++++++++++++++++++++++---
src/backend/access/transam/parallel.c |   26 +-
src/backend/commands/vacuum.c         |  135 +++-
src/backend/postmaster/autovacuum.c   |    2 +
src/bin/psql/tab-complete.c           |    2 +-
src/include/access/heapam.h           |    3 +
src/include/access/parallel.h         |    4 +-
src/include/commands/vacuum.h         |   12 +
src/test/regress/expected/vacuum.out  |   34 +
src/test/regress/sql/vacuum.sql       |   31 +
src/tools/pgindent/typedefs.list      |    4 +
13 files changed, 1452 insertions(+), 136 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: pgsql: Add a non-strict version of jsonb_set
Следующее
От: Heikki Linnakangas
Дата:
Сообщение: pgsql: Fix crash in BRIN inclusion op functions, due to missing datum c