Clearify how processes are started by autovacuum, and what the effect
authorMagnus Hagander <magnus@hagander.net>
Mon, 8 Dec 2008 20:31:00 +0000 (20:31 +0000)
committerMagnus Hagander <magnus@hagander.net>
Mon, 8 Dec 2008 20:31:00 +0000 (20:31 +0000)
of autovacuum_max_workers parameter is.

Per discussion with Alvaro.

doc/src/sgml/maintenance.sgml

index 6df082d2a4955bce610ed24d6b5db7cdbba228d4..4ae6bd55537f8dac81904607cf085ebd1a069f68 100644 (file)
@@ -522,10 +522,16 @@ HINT:  Stop the postmaster and use a standalone backend to VACUUM in "mydb".
     The <quote>autovacuum daemon</> actually consists of multiple processes.
     There is a persistent daemon process, called the
     <firstterm>autovacuum launcher</firstterm>, which is in charge of starting
-    an <firstterm>autovacuum worker</firstterm> process on each database every
-    <xref linkend="guc-autovacuum-naptime"> seconds. On each run, the worker
-    process checks each table within that database, and executes
-    <command>VACUUM</> and/or <command>ANALYZE</> commands as needed.
+    <firstterm>autovacuum worker</firstterm> processes for all databases. The
+    launcher will distribute the work across time, but attempt to start one
+    worker on each database every <xref linkend="guc-autovacuum-naptime">
+    seconds. One worker will be launched for each database, with a maximum
+    of <xref linkend="guc-autovacuum-max-workers"> processes running at the
+    same time. If there are more than
+    <xref linkend="guc-autovacuum-max-workers"> databases to be processed,
+    the next database will be processed as soon as the first worker finishes.
+    The worker processes will check each table within its database and
+    execute <command>VACUUM</> and/or <command>ANALYZE</> as needed.
    </para>
 
    <para>