pgsql: Improve parallel vacuum implementation.

Поиск
Список
Период
Сортировка
От Amit Kapila
Тема pgsql: Improve parallel vacuum implementation.
Дата
Msg-id E1mxKBo-0000Q1-KQ@gemulon.postgresql.org
обсуждение исходный текст
Список 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 по дате отправления:

Предыдущее
От: Michael Paquier
Дата:
Сообщение: pgsql: Adjust behavior of some env settings for the TAP tests of MSVC
Следующее
От: Peter Eisentraut
Дата:
Сообщение: pgsql: pg_checksums: Fix data type