From 9edd720050a2979c684b514f7d5118a8a0d45dff Mon Sep 17 00:00:00 2001
From: Magnus Hagander <magnus@hagander.net>
Date: Mon, 8 Dec 2008 20:30:58 +0000
Subject: [PATCH] Clearify how processes are started by autovacuum, and what
 the effect of autovacuum_max_workers parameter is.

Per discussion with Alvaro.
---
 doc/src/sgml/maintenance.sgml | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/doc/src/sgml/maintenance.sgml b/doc/src/sgml/maintenance.sgml
index c2a4ce325c0..09c14782d86 100644
--- a/doc/src/sgml/maintenance.sgml
+++ b/doc/src/sgml/maintenance.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/maintenance.sgml,v 1.86 2008/06/16 03:13:14 tgl Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/maintenance.sgml,v 1.87 2008/12/08 20:30:58 mha Exp $ -->
 
 <chapter id="maintenance">
  <title>Routine Database Maintenance Tasks</title>
@@ -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>
-- 
GitLab