diff options
author | Amit Kapila <akapila@postgresql.org> | 2020-01-15 07:24:14 +0530 |
---|---|---|
committer | Amit Kapila <akapila@postgresql.org> | 2020-01-15 07:24:14 +0530 |
commit | 4d8a8d0c738410ec02aab46b1ebe1835365ad384 (patch) | |
tree | c45a296dd51387d6169be7845c76d3033818efd4 /src/backend/access/spgist/spgutils.c | |
parent | fe233366f2e3ca44609c805ce0604c1e2122c3f9 (diff) | |
download | postgresql-4d8a8d0c738410ec02aab46b1ebe1835365ad384.tar.gz postgresql-4d8a8d0c738410ec02aab46b1ebe1835365ad384.zip |
Introduce IndexAM fields for parallel vacuum.
Introduce new fields amusemaintenanceworkmem and amparallelvacuumoptions
in IndexAmRoutine for parallel vacuum. The amusemaintenanceworkmem tells
whether a particular IndexAM uses maintenance_work_mem or not. This will
help in controlling the memory used by individual workers as otherwise,
each worker can consume memory equal to maintenance_work_mem. The
amparallelvacuumoptions tell whether a particular IndexAM participates in
a parallel vacuum and if so in which phase (bulkdelete, vacuumcleanup) of
vacuum.
Author: Masahiko Sawada and Amit Kapila
Reviewed-by: Dilip Kumar, Amit Kapila, Tomas Vondra and Robert Haas
Discussion:
https://postgr.es/m/CAD21AoDTPMgzSkV4E3SFo1CH_x50bf5PqZFQf4jmqjk-C03BWg@mail.gmail.com
https://postgr.es/m/CAA4eK1LmcD5aPogzwim5Nn58Ki+74a6Edghx4Wd8hAskvHaq5A@mail.gmail.com
Diffstat (limited to 'src/backend/access/spgist/spgutils.c')
-rw-r--r-- | src/backend/access/spgist/spgutils.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/backend/access/spgist/spgutils.c b/src/backend/access/spgist/spgutils.c index d715908764a..4924ae1c593 100644 --- a/src/backend/access/spgist/spgutils.c +++ b/src/backend/access/spgist/spgutils.c @@ -22,6 +22,7 @@ #include "access/transam.h" #include "access/xact.h" #include "catalog/pg_amop.h" +#include "commands/vacuum.h" #include "storage/bufmgr.h" #include "storage/indexfsm.h" #include "storage/lmgr.h" @@ -56,6 +57,9 @@ spghandler(PG_FUNCTION_ARGS) amroutine->ampredlocks = false; amroutine->amcanparallel = false; amroutine->amcaninclude = false; + amroutine->amusemaintenanceworkmem = false; + amroutine->amparallelvacuumoptions = + VACUUM_OPTION_PARALLEL_BULKDEL | VACUUM_OPTION_PARALLEL_COND_CLEANUP; amroutine->amkeytype = InvalidOid; amroutine->ambuild = spgbuild; |