Index: catalogs.sgml
===================================================================
RCS file: /home/alvherre/cvs/pgsql/doc/src/sgml/catalogs.sgml,v
retrieving revision 2.113
diff -c -r2.113 catalogs.sgml
*** catalogs.sgml 8 Sep 2005 20:07:41 -0000 2.113
--- catalogs.sgml 12 Sep 2005 13:56:35 -0000
***************
*** 1137,1145 ****
pg_autovacuum
The catalog pg_autovacuum stores optional
! per-relation configuration parameters for autovacuum>.
If there is an entry here for a particular relation, the given
parameters will be used for autovacuuming that table. If no entry
is present, the system-wide defaults will be used.
--- 1137,1150 ----
pg_autovacuum
+
+ autovacuum
+ table-specific configuration
+
+
The catalog pg_autovacuum stores optional
! per-relation configuration parameters for .
If there is an entry here for a particular relation, the given
parameters will be used for autovacuuming that table. If no entry
is present, the system-wide defaults will be used.
Index: maintenance.sgml
===================================================================
RCS file: /home/alvherre/cvs/pgsql/doc/src/sgml/maintenance.sgml,v
retrieving revision 1.45
diff -c -r1.45 maintenance.sgml
*** maintenance.sgml 22 Jun 2005 21:14:28 -0000 1.45
--- maintenance.sgml 12 Sep 2005 14:10:17 -0000
***************
*** 99,104 ****
--- 99,110 ----
.
+
+ An automated mechanism for performing the necessary VACUUM>
+ operations has been added in PostgreSQL 8.1.
+ See .
+
+
Recovering disk space
***************
*** 177,189 ****
the program vacuumdb> may be helpful.
-
-
- The contrib/pg_autovacuum> program can be useful for
- automating high-frequency vacuuming operations.
-
-
-
VACUUM FULL> is recommended for cases where you know
you have deleted the majority of rows in a table, so that the
--- 183,188 ----
***************
*** 456,461 ****
--- 455,551 ----
+
+
+ The Auto-Vacuum Daemon
+
+
+ autovacuum
+ general information
+
+
+ Beginning in PostgreSQL 8.1, there is a
+ separate optional server process called the autovacuum
+ daemon, whose purpose is to automate the issuance of
+ VACUUM and ANALYZE commands.
+ When enabled, the autovacuum daemon runs periodically and checks for
+ tables that have had a large number of inserted, updated or deleted
+ tuples. These checks use the row-level statistics collection facility;
+ therefore, the autovacuum daemon cannot be used unless and are set true. Also, it's
+ important to allow a slot for the autovacuum process when choosing the
+ value of .
+
+
+
+ The autovacuum daemon, when enabled, runs every seconds and determines which database
+ to process. Any database which is close to transaction ID wraparound
+ is immediately processed. In this case, autovacuum issues a
+ database-wide VACUUM call, or VACUUM
+ FREEZE if it's a template database, and then terminates. If
+ no database fulfills this criterion, the one that was least recently
+ processed by autovacuum itself is chosen. In this mode, each table in
+ the database is checked for new and obsolete tuples, according to the
+ applicable autovacuum parameters. If a
+ pg_autovacuum tuple is found for this
+ table, these settings are applied; otherwise the global values in
+ postgresql.conf are used. See
+ for more details on the global settings. Note that the autovacuum
+ daemon can be instructed to skip particular tables, by setting the
+ pg_autovacuum>.enabled> field to false.
+
+
+
+ For each table, two conditions are used to determine which operation to
+ apply. If the number of obsolete tuples since the last
+ VACUUM exceeds the vacuum threshold, the
+ table is vacuumed and analyzed. The vacuum threshold is defined as:
+
+ vacuum threshold = vacuum base threshold + vacuum scale factor * number of tuples
+
+ where the vacuum base threshold is
+ pg_autovacuum.vac_base_thresh,
+ the vacuum scale factor is
+ pg_autovacuum.vac_scale_factor
+ and the number of tuples is
+ pg_class.reltuples.
+ The number of obsolete tuples is taken from the statistics
+ collector, which is a semi-accurate count updated by each
+ UPDATE and DELETE operation. (It
+ is only semi-accurate because some information may be lost under heavy
+ load.) For analyze, a similar condition is used: the threshold, calculated
+ by an equivalent equation to that above, is compared to the number of
+ new tuples, that is, those created by the INSERT and
+ COPY commands.
+
+
+
+ Note that if any of the values in pg_autovacuum
+ is set to a negative number, or if a tuple is not present at all in
+ pg_autovacuum for any particular table, the
+ equivalent value from postgresql.conf is used.
+
+
+
+ Additionally to the base threshold values and scale factors, there are
+ two parameters that can be set for each table in pg_autovacuum:
+ the vacuum cost delay
+ (pg_autovacuum.vac_cost_delay)
+ and the vacuum cost limit
+ (pg_autovacuum.vac_cost_limit).
+ They are used to set table-specific values for the
+
+ feature. The above note about negative values also applies here, but
+ also note that if the postgresql.conf variables
+ autovacuum_vacuum_cost_limit and
+ autovacuum_vacuum_cost_delay are also set to negative
+ values, the vacuum_cost_limit and
+ vacuum_cost_delay values will be used instead.
+
+
+
Index: runtime.sgml
===================================================================
RCS file: /home/alvherre/cvs/pgsql/doc/src/sgml/runtime.sgml,v
retrieving revision 1.352
diff -c -r1.352 runtime.sgml
*** runtime.sgml 30 Aug 2005 15:48:28 -0000 1.352
--- runtime.sgml 12 Sep 2005 13:55:25 -0000
***************
*** 3344,3361 ****
Automatic Vacuuming
! Beginning in PostgreSQL> 8.1, there is an optional server
! process called the autovacuum daemon>, whose purpose is
! to automate the issuance of periodic VACUUM> and
! ANALYZE> commands. When enabled, the autovacuum daemon
! runs periodically and checks for tables that have had a large number
! of updated or deleted tuples. This check uses the row-level statistics
! collection facility; therefore, the autovacuum daemon cannot be used
! unless and
! are set TRUE. Also, it's
! important to allow a slot for the autovacuum process when choosing
! the value of .
--- 3344,3358 ----
Automatic Vacuuming
+
+ autovacuum
+ global configuration parameters
+
+
! These settings control the default behavior for the autovacuum
! daemon. Please refer to for
! more information.
***************
*** 3470,3477 ****
VACUUM> operations. If -1 is specified (which is the
default), the regular
value will be used.
- This setting can be overridden for individual tables by entries in
- pg_autovacuum>.
--- 3467,3472 ----
***************
*** 3487,3494 ****
VACUUM> operations. If -1 is specified (which is the
default), the regular
value will be used.
- This setting can be overridden for individual tables by entries in
- pg_autovacuum>.
--- 3482,3487 ----