diff options
| author | Alvaro Herrera | 2015-04-03 14:55:50 +0000 |
|---|---|---|
| committer | Alvaro Herrera | 2015-04-03 14:55:50 +0000 |
| commit | 4ff695b17d32a9c330952192dbc789d31a5e2f5e (patch) | |
| tree | 1e83f651e13c90928d0ba9337b0c15aa69773ed1 /src/backend/postmaster | |
| parent | a75fb9b335db0e063ece283ebd207530abe1b53b (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.c | 7 |
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; |
