pgsql: Separate vacuum cost variables from GUCs

From: Daniel Gustafsson <dgustafsson(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Separate vacuum cost variables from GUCs
Date: 2023-04-06 23:03:23
Message-ID: E1pkYdW-001kmo-3A@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

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 <melanieplageman(at)gmail(dot)com>
Reviewed-by: Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>
Reviewed-by: Daniel Gustafsson <daniel(at)yesql(dot)se>
Reviewed-by: Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com>
Reviewed-by: Robert Haas <robertmhaas(at)gmail(dot)com>
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(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Andres Freund 2023-04-06 23:20:20 pgsql: heapam: Pass number of required pages to RelationGetBufferForTup
Previous Message Tom Lane 2023-04-06 22:14:37 pgsql: Stabilize just-added regression test cases.