Separate vacuum cost variables from GUCs Vacuum code run both by autovacuum workers and a backend doing VACUUM/ANALYZE previously inspected VacuumCostLimit and VacuumCostDelay, which are the global variables backing the GUCs vacuum_cost_limit and vacuum_cost_delay.
Autovacuum workers needed to override these variables with their own values, derived from autovacuum_vacuum_cost_limit and autovacuum_vacuum_cost_delay and worker cost limit balancing logic. This led to confusing code which, in some cases, both derived and set a new value of VacuumCostLimit from VacuumCostLimit. In preparation for refreshing these GUC values more often, introduce new, independent global variables and add a function to update them using the GUCs and existing logic. Per suggestion by Kyotaro Horiguchi Author: Melanie Plageman <[email protected]> Reviewed-by: Masahiko Sawada <[email protected]> Reviewed-by: Daniel Gustafsson <[email protected]> Reviewed-by: Kyotaro Horiguchi <[email protected]> Reviewed-by: Robert Haas <[email protected]> Discussion: https://www.postgresql.org/message-id/flat/CAAKRu_ZngzqnEODc7LmS1NH04Kt6Y9huSjz5pp7%2BDXhrjDA0gw%40mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/a85c60a945acfcb1aaac0c521e5eb5a2477d9695 Modified Files -------------- src/backend/commands/vacuum.c | 29 +++++++++++++++++++---------- src/backend/commands/vacuumparallel.c | 3 ++- src/backend/postmaster/autovacuum.c | 34 ++++++++++++++-------------------- src/include/commands/vacuum.h | 5 +++++ src/include/postmaster/autovacuum.h | 3 --- 5 files changed, 40 insertions(+), 34 deletions(-)
