pgsql: Improve parallel vacuum implementation. - Mailing list pgsql-committers

From Amit Kapila
Subject pgsql: Improve parallel vacuum implementation.
Date
Msg-id E1mxKBo-0000Q1-KQ@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Improve parallel vacuum implementation.

Previously, in parallel vacuum, we allocated shmem area of
IndexBulkDeleteResult only for indexes where parallel index vacuuming is
safe and had null-bitmap in shmem area to access them. This logic was too
complicated with a small benefit of saving only a few bits per indexes.

In this commit, we allocate a dedicated shmem area for the array of
LVParallelIndStats that includes a parallel-safety flag, the index vacuum
status, and IndexBulkdeleteResult. There is one array element for every
index, even those indexes where parallel index vacuuming is unsafe or not
worthwhile. This commit makes the code clear by removing all
bitmap-related code.

Also, add the check each index vacuum status after parallel index vacuum
to make sure that all indexes have been processed.

Finally, rename parallel vacuum functions to parallel_vacuum_* for
consistency.

Author: Masahiko Sawada, based on suggestions by Andres Freund
Reviewed-by: Hou Zhijie, Amit Kapila
Discussion: https://www.postgresql.org/message-id/20211030212101.ae3qcouatwmy7tbr%40alap3.anarazel.de

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/22bd3cbe0c284758d7174321f5596763095cdd55

Modified Files
--------------
src/backend/access/heap/vacuumlazy.c | 604 +++++++++++++++++------------------
src/tools/pgindent/typedefs.list     |   2 +
2 files changed, 288 insertions(+), 318 deletions(-)


pgsql-committers by date:

Previous
From: Michael Paquier
Date:
Subject: pgsql: Adjust behavior of some env settings for the TAP tests of MSVC
Next
From: Peter Eisentraut
Date:
Subject: pgsql: pg_checksums: Fix data type