Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Doc: Fix misleading statement about VACUUM memory limits
authorDavid Rowley <drowley@postgresql.org>
Mon, 9 Aug 2021 04:49:10 +0000 (16:49 +1200)
committerDavid Rowley <drowley@postgresql.org>
Mon, 9 Aug 2021 04:49:10 +0000 (16:49 +1200)
In ec34040af I added a mention that there was no point in setting
maintenance_work_limit to anything higher than 1GB for vacuum, but that
was incorrect as ginInsertCleanup() also looks at what
maintenance_work_mem is set to during VACUUM and that's not limited to
1GB.

Here I attempt to make it more clear that the limitation is only around
the number of dead tuple identifiers that we can collect during VACUUM.

I've also added a note to autovacuum_work_mem to mention this limitation.
I didn't do that in ec34040af as I'd had some wrong-headed ideas about
just limiting the maximum value for that GUC to 1GB.

Author: David Rowley
Discussion: https://postgr.es/m/CAApHDvpGwOAvunp-E-bN_rbAs3hmxMoasm5pzkYDbf36h73s7w@mail.gmail.com
Backpatch-through: 9.6, same as ec34040af

doc/src/sgml/config.sgml

index 924044eabde780057aeb93e8d4c42983833e3add..cdd710dcfa8005bf1a02de16ddbd088a8a8fa320 100644 (file)
@@ -1530,10 +1530,9 @@ include_dir 'conf.d'
         setting <xref linkend="guc-autovacuum-work-mem">.
        </para>
        <para>
-        Additionally, <command>VACUUM</command> is only able to utilize up to
-        a maximum of <literal>1GB</literal> of memory, so
-        <varname>maintenance_work_mem</varname> values higher than this have
-        no effect on <command>VACUUM</command>.
+        Note that for the collection of dead tuple identifiers,
+        <command>VACUUM</command> is only able to utilize up to a maximum of
+        <literal>1GB</literal> of memory.
        </para>
       </listitem>
      </varlistentry>
@@ -1594,6 +1593,13 @@ include_dir 'conf.d'
         <filename>postgresql.conf</filename> file or on the server command
         line.
        </para>
+       <para>
+        For the collection of dead tuple identifiers, autovacuum is only able
+        to utilize up to a maximum of <literal>1GB</literal> of memory, so
+        setting <varname>autovacuum_work_mem</varname> to a value higher than
+        that has no effect on the number of dead tuples that autovacuum can
+        collect while scanning a table.
+       </para>
       </listitem>
      </varlistentry>