diff --git a/contrib/pg_autovacuum/README.pg_autovacuum b/contrib/pg_autovacuum/README.pg_autovacuum index 64c5eb5353..f20842135b 100644 --- a/contrib/pg_autovacuum/README.pg_autovacuum +++ b/contrib/pg_autovacuum/README.pg_autovacuum @@ -123,6 +123,10 @@ pg_autovacuum has the following optional arguments: -V vacuum scaling factor: see "Vacuum and Analyze" below. -a analyze base threshold: see "Vacuum and Analyze" below. -A analyze scaling factor: see "Vacuum and Analyze" below. +-i update interval: how often (in terms of iterations of the primary loop + over the database list) to update the database list. The default is 2, + which means the list will be updated before every other pass through + the database list. -L log file: Name of file to which output is submitted, otherwise STDERR -U username: Username pg_autovacuum will use to connect with, if not specified the current username is used. @@ -157,6 +161,7 @@ the time of writing they are: -A 1 (half of -V if not specified) -s 300 (5 minutes) -S 2 +-i 2 The following arguments are used on Windows only: diff --git a/contrib/pg_autovacuum/pg_autovacuum.c b/contrib/pg_autovacuum/pg_autovacuum.c index fdbd285f10..c0170ebd81 100644 --- a/contrib/pg_autovacuum/pg_autovacuum.c +++ b/contrib/pg_autovacuum/pg_autovacuum.c @@ -4,7 +4,7 @@ * Revisions by Christopher B. Browne, Liberty RMS * Win32 Service code added by Dave Page * - * $PostgreSQL: pgsql/contrib/pg_autovacuum/pg_autovacuum.c,v 1.30 2005/04/03 00:01:51 tgl Exp $ + * $PostgreSQL: pgsql/contrib/pg_autovacuum/pg_autovacuum.c,v 1.31 2005/04/19 03:35:15 momjian Exp $ */ #include "postgres_fe.h" @@ -1103,6 +1103,7 @@ get_cmd_args(int argc, char *argv[]) args->analyze_base_threshold = -1; args->analyze_scaling_factor = -1; args->debug = AUTOVACUUM_DEBUG; + args->update_interval = UPDATE_INTERVAL; #ifndef WIN32 args->daemonize = 0; #else @@ -1157,6 +1158,9 @@ get_cmd_args(int argc, char *argv[]) case 'A': args->analyze_scaling_factor = atof(optarg); break; + case 'i': + args->update_interval = atoi(optarg); + break; case 'c': args->av_vacuum_cost_delay = atoi(optarg); break; @@ -1341,6 +1345,8 @@ print_cmd_args(void) log_entry(logbuffer, LVL_INFO); sprintf(logbuffer, " args->analyze_scaling_factor=%f", args->analyze_scaling_factor); log_entry(logbuffer, LVL_INFO); + sprintf(logbuffer, " args->update_interval=%i", args->update_interval); + log_entry(logbuffer, LVL_INFO); if (args->av_vacuum_cost_delay != -1) sprintf(logbuffer, " args->av_vacuum_cost_delay=%d", args->av_vacuum_cost_delay); @@ -1646,8 +1652,8 @@ VacuumLoop(int argc, char **argv) } } - if (loops % UPDATE_INTERVAL == 0) /* Update the list if it's - * time */ + if (loops % args->update_interval == 0) /* Update the list if it's + * time */ update_db_list(db_list); /* Add and remove databases from * the list */ @@ -1661,8 +1667,8 @@ VacuumLoop(int argc, char **argv) if (dbs->conn != NULL) { - if (loops % UPDATE_INTERVAL == 0) /* Update the list if - * it's time */ + if (loops % args->update_interval == 0) /* Update the list if + * it's time */ update_table_list(dbs); /* Add and remove tables * from the list */ diff --git a/contrib/pg_autovacuum/pg_autovacuum.h b/contrib/pg_autovacuum/pg_autovacuum.h index d9e476ed6a..5c6186d7fb 100644 --- a/contrib/pg_autovacuum/pg_autovacuum.h +++ b/contrib/pg_autovacuum/pg_autovacuum.h @@ -2,7 +2,7 @@ * Header file for pg_autovacuum.c * (c) 2003 Matthew T. O'Connor * - * $PostgreSQL: pgsql/contrib/pg_autovacuum/pg_autovacuum.h,v 1.14 2004/12/02 22:48:10 momjian Exp $ + * $PostgreSQL: pgsql/contrib/pg_autovacuum/pg_autovacuum.h,v 1.15 2005/04/19 03:35:15 momjian Exp $ */ #ifndef _PG_AUTOVACUUM_H @@ -44,6 +44,7 @@ typedef struct cmdargs { int vacuum_base_threshold, analyze_base_threshold, + update_interval, sleep_base_value, debug,