summaryrefslogtreecommitdiff
path: root/src/backend/postmaster
diff options
context:
space:
mode:
authorAlvaro Herrera2015-04-03 14:55:50 +0000
committerAlvaro Herrera2015-04-03 14:55:50 +0000
commit4ff695b17d32a9c330952192dbc789d31a5e2f5e (patch)
tree1e83f651e13c90928d0ba9337b0c15aa69773ed1 /src/backend/postmaster
parenta75fb9b335db0e063ece283ebd207530abe1b53b (diff)
Add log_min_autovacuum_duration per-table option
This is useful to control autovacuum log volume, for situations where monitoring only a set of tables is necessary. Author: Michael Paquier Reviewed by: A team led by Naoya Anzai (also including Akira Kurosawa, Taiki Kondo, Huong Dangminh), Fujii Masao.
Diffstat (limited to 'src/backend/postmaster')
-rw-r--r--src/backend/postmaster/autovacuum.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c
index b2d37e5d479..db46134979e 100644
--- a/src/backend/postmaster/autovacuum.c
+++ b/src/backend/postmaster/autovacuum.c
@@ -2493,6 +2493,7 @@ table_recheck_autovac(Oid relid, HTAB *table_toast_map,
int multixact_freeze_table_age;
int vac_cost_limit;
int vac_cost_delay;
+ int log_min_duration;
/*
* Calculate the vacuum cost parameters and the freeze ages. If there
@@ -2515,6 +2516,11 @@ table_recheck_autovac(Oid relid, HTAB *table_toast_map,
? autovacuum_vac_cost_limit
: VacuumCostLimit;
+ /* -1 in autovac setting means use log_autovacuum_min_duration */
+ log_min_duration = (avopts && avopts->log_min_duration >= 0)
+ ? avopts->log_min_duration
+ : Log_autovacuum_min_duration;
+
/* these do not have autovacuum-specific settings */
freeze_min_age = (avopts && avopts->freeze_min_age >= 0)
? avopts->freeze_min_age
@@ -2545,6 +2551,7 @@ table_recheck_autovac(Oid relid, HTAB *table_toast_map,
tab->at_params.multixact_freeze_min_age = multixact_freeze_min_age;
tab->at_params.multixact_freeze_table_age = multixact_freeze_table_age;
tab->at_params.is_wraparound = wraparound;
+ tab->at_params.log_min_duration = log_min_duration;
tab->at_vacuum_cost_limit = vac_cost_limit;
tab->at_vacuum_cost_delay = vac_cost_delay;
tab->at_relname = NULL;