Doc: add glossary term for "auxiliary process"
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Mon, 20 Sep 2021 15:22:02 +0000 (12:22 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Mon, 20 Sep 2021 15:22:02 +0000 (12:22 -0300)
Add entries for existing processes not documented, too, and adjust
existing definitions for consistency.

Per question from Bharath Rupireddy.

Author: Justin Pryzby <pryzby@telsasoft.com>
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Discussion: https://postgr.es/m/CALj2ACVpYCT0M+k8zqrAa4ZQZV+ce5s6G=yajwoS1m=h-jj8NQ@mail.gmail.com

doc/src/sgml/glossary.sgml
src/include/miscadmin.h

index 63ff4bbdf06038e3759cea2805de82f44291d1a1..0c88988fa66bf995d7d8590bd78a04c73d228362 100644 (file)
@@ -48,7 +48,7 @@
    <glossterm>Analyze (operation)</glossterm>
    <glossdef>
     <para>
-     The process of collecting statistics from data in
+     The act of collecting statistics from data in
      <glossterm linkend="glossary-table">tables</glossterm>
      and other <glossterm linkend="glossary-relation">relations</glossterm>
      to help the <glossterm linkend="glossary-planner">query planner</glossterm>
     <para>
      A set of background processes that routinely perform
      <glossterm linkend="glossary-vacuum">vacuum</glossterm>
-     and <glossterm linkend="glossary-analyze">analyze</glossterm>
-     operations.
+     and <glossterm linkend="glossary-analyze">analyze</glossterm> operations.
+     The <glossterm linkend="glossary-auxiliary-proc">auxiliary process</glossterm>
+     that coordinates the work and is always present (unless autovacuum
+     is disabled) is known as the <firstterm>autovacuum launcher</firstterm>,
+     and the processes that carry out the tasks are known as the
+     <firstterm>autovacuum workers</firstterm>.
     </para>
     <para>
      For more information, see
    </glossdef>
   </glossentry>
 
+  <glossentry id="glossary-auxiliary-proc">
+   <glossterm>Auxiliary process</glossterm>
+   <glossdef>
+    <para>
+     A process within an <glossterm linkend="glossary-instance">instance</glossterm>
+     that is in charge of some specific background task for the instance.
+     The auxiliary processes consist of <!-- in alphabetical order -->
+     <!-- NB: In the code, the autovac launcher doesn't use the auxiliary
+          process scaffolding; however it does behave as one so we list it
+          here anyway. In addition, logger and stats collector aren't
+          connected to shared memory so most code outside postmaster.c
+          doesn't even consider them "procs" in the first place.
+          -->
+     the <glossterm linkend="glossary-autovacuum">autovacuum launcher</glossterm>
+     (but not the autovacuum workers),
+     the <glossterm linkend="glossary-background-writer">background writer</glossterm>,
+     the <glossterm linkend="glossary-checkpointer">checkpointer</glossterm>,
+     the <glossterm linkend="glossary-logger">logger</glossterm>,
+     the <glossterm linkend="glossary-startup-process">startup process</glossterm>,
+     the <glossterm linkend="glossary-stats-collector">statistics collector</glossterm>,
+     the <glossterm linkend="glossary-wal-archiver">WAL archiver</glossterm>,
+     the <glossterm linkend="glossary-wal-receiver">WAL receiver</glossterm>
+     (but not the <glossterm linkend="glossary-wal-sender">WAL senders</glossterm>),
+     and the <glossterm linkend="glossary-wal-writer">WAL writer</glossterm>.
+    </para>
+   </glossdef>
+  </glossentry>
+
   <glossentry id="glossary-backend">
    <glossterm>Backend (process)</glossterm>
    <glossdef>
    <glossterm>Background writer (process)</glossterm>
    <glossdef>
     <para>
-     A process that writes dirty
+     An <glossterm linkend="glossary-auxiliary-proc">auxiliary process</glossterm>
+     that writes dirty
      <glossterm linkend="glossary-data-page">data pages</glossterm> from
      <glossterm linkend="glossary-shared-memory">shared memory</glossterm> to
      the file system.  It wakes up periodically, but works only for a short
    <glossterm>Checkpointer (process)</glossterm>
    <glossdef>
     <para>
-     A specialized process responsible for executing checkpoints.
+     An <glossterm linkend="glossary-auxiliary-proc">auxiliary process</glossterm>
+     that is responsible for executing
+     <glossterm linkend="glossary-checkpoint">checkpoints</glossterm>.
     </para>
    </glossdef>
   </glossentry>
    <glossterm>Instance</glossterm>
    <glossdef>
     <para>
-     A group of backend and auxiliary processes that communicate using
-     a common shared memory area.  One
+     A group of <glossterm linkend="glossary-backend">backend</glossterm> and
+     <glossterm linkend="glossary-auxiliary-proc">auxiliary processes</glossterm>
+     that communicate using a common shared memory area.  One
      <glossterm linkend="glossary-postmaster">postmaster process</glossterm>
      manages the instance; one instance manages exactly one
      <glossterm linkend="glossary-db-cluster">database cluster</glossterm>
    <glossterm>Logger (process)</glossterm>
    <glossdef>
     <para>
-     If activated, the process
-     writes information about database events into the current
+     An <glossterm linkend="glossary-auxiliary-proc">auxiliary process</glossterm>
+     which, if enabled, writes information about database events into the current
      <glossterm linkend="glossary-log-file">log file</glossterm>.
      When reaching certain time- or
      volume-dependent criteria, a new log file is created.
    <glossdef>
     <para>
       The very first process of an <glossterm linkend="glossary-instance">instance</glossterm>.
-      It starts and manages the other auxiliary processes and creates
-      <glossterm linkend="glossary-backend">backend processes</glossterm>
+      It starts and manages the
+      <glossterm linkend="glossary-auxiliary-proc">auxiliary processes</glossterm>
+      and creates <glossterm linkend="glossary-backend">backend processes</glossterm>
       on demand.
     </para>
     <para>
    </glossdef>
   </glossentry>
 
+  <glossentry id="glossary-startup-process">
+   <glossterm>Startup process</glossterm>
+   <glossdef>
+    <para>
+     An <glossterm linkend="glossary-auxiliary-proc">auxiliary process</glossterm>
+     that replays WAL during crash recovery and in a
+     <glossterm linkend="glossary-replication">physical replica</glossterm>.
+    </para>
+    <para>
+     (The name is historical: the startup process was named before
+     replication was implemented; the name refers to its task as it
+     relates to the server startup following a crash.)
+    </para>
+   </glossdef>
+  </glossentry>
+
   <glossentry id="glossary-sql-object">
    <glossterm>SQL object</glossterm>
     <glossdef>
    <glossterm>Stats collector (process)</glossterm>
    <glossdef>
     <para>
-     This process collects statistical information about the
-     <glossterm linkend="glossary-instance">instance</glossterm>'s activities.
+     An <glossterm linkend="glossary-auxiliary-proc">auxiliary process</glossterm>
+     which, if enabled, receives statistical information
+     about the <glossterm linkend="glossary-instance">instance</glossterm>'s
+     activities.
     </para>
     <para>
       For more information, see
    <glossterm>WAL archiver (process)</glossterm>
    <glossdef>
     <para>
-     A process that saves copies of <glossterm linkend="glossary-wal-file">WAL files</glossterm>
+     An <glossterm linkend="glossary-auxiliary-proc">auxiliary process</glossterm>
+     which, if enabled, saves copies of
+     <glossterm linkend="glossary-wal-file">WAL files</glossterm>
      for the purpose of creating backups or keeping
      <glossterm linkend="glossary-replica">replicas</glossterm> current.
     </para>
    </glossdef>
   </glossentry>
 
+  <glossentry id="glossary-wal-receiver">
+   <glossterm>WAL receiver</glossterm>
+   <glossdef>
+    <para>
+     An <glossterm linkend="glossary-auxiliary-proc">auxiliary process</glossterm>
+     that runs on a <glossterm linkend="glossary-replica">replica</glossterm>
+     to receive WAL from the
+     <glossterm linkend="glossary-primary-server">primary server</glossterm>
+     for replay by the
+     <glossterm linkend="glossary-startup-process">startup process</glossterm>.
+    </para>
+
+    <para>
+     For more information, see
+     <xref linkend="warm-standby"/>.
+    </para>
+   </glossdef>
+  </glossentry>
+
   <glossentry>
    <glossterm>WAL segment</glossterm>
    <glosssee otherterm="glossary-wal-file" />
   </glossentry>
 
+  <glossentry id="glossary-wal-sender">
+   <glossterm>WAL sender (process)</glossterm>
+   <glossdef>
+    <para>
+     A special <glossterm linkend="glossary-backend">backend process</glossterm>
+     that streams WAL over a network.  The receiving end can be a
+     <glossterm linkend="glossary-wal-receiver">WAL receiver</glossterm>
+     in a <glossterm linkend="glossary-replica">replica</glossterm>,
+     <xref linkend="app-pgreceivewal"/>, or any other client program
+     that speaks the replication protocol.
+    </para>
+   </glossdef>
+  </glossentry>
+
   <glossentry id="glossary-wal-writer">
    <glossterm>WAL writer (process)</glossterm>
    <glossdef>
index 2e2e9a364a763ac04aec1cfe9372b0fedb0f569d..90a301606575b9279ba0c4eedd1cb035ac042867 100644 (file)
@@ -422,6 +422,8 @@ extern ProcessingMode Mode;
  * Auxiliary-process type identifiers.  These used to be in bootstrap.h
  * but it seems saner to have them here, with the ProcessingMode stuff.
  * The MyAuxProcType global is defined and set in auxprocess.c.
+ *
+ * Make sure to list in the glossary any items you add here.
  */
 
 typedef enum