aboutsummaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2015-05-08 12:09:14 -0400
committerRobert Haas <rhaas@postgresql.org>2015-05-08 12:53:00 -0400
commit53bb309d2d5a9432d2602c93ed18e58bd2924e15 (patch)
treeeb9d0ab30c1d3822831a79c87cde04d549ddcaeb /doc/src
parent195fbd40123b85ba8a44ca273b17d699e30ec6a8 (diff)
downloadpostgresql-53bb309d2d5a9432d2602c93ed18e58bd2924e15.tar.gz
postgresql-53bb309d2d5a9432d2602c93ed18e58bd2924e15.zip
Teach autovacuum about multixact member wraparound.
The logic introduced in commit b69bf30b9bfacafc733a9ba77c9587cf54d06c0c and repaired in commits 669c7d20e6374850593cb430d332e11a3992bbcf and 7be47c56af3d3013955c91c2877c08f2a0e3e6a2 helps to ensure that we don't overwrite old multixact member information while it is still needed, but a user who creates many large multixacts can still exhaust the member space (and thus start getting errors) while autovacuum stands idly by. To fix this, progressively ramp down the effective value (but not the actual contents) of autovacuum_multixact_freeze_max_age as member space utilization increases. This makes autovacuum more aggressive and also reduces the threshold for a manual VACUUM to perform a full-table scan. This patch leaves unsolved the problem of ensuring that emergency autovacuums are triggered even when autovacuum=off. We'll need to fix that via a separate patch. Thomas Munro and Robert Haas
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/maintenance.sgml8
1 files changed, 7 insertions, 1 deletions
diff --git a/doc/src/sgml/maintenance.sgml b/doc/src/sgml/maintenance.sgml
index 8764e0091ac..211ad03d954 100644
--- a/doc/src/sgml/maintenance.sgml
+++ b/doc/src/sgml/maintenance.sgml
@@ -628,6 +628,9 @@ HINT: Stop the postmaster and vacuum that database in single-user mode.
Like transaction IDs, multixact IDs are implemented as a
32-bit counter and corresponding storage, all of which requires
careful aging management, storage cleanup, and wraparound handling.
+ There is a separate storage area which holds the list of members in
+ each multixact, which also uses a 32-bit counter and which must also
+ be managed.
</para>
<para>
@@ -656,7 +659,10 @@ HINT: Stop the postmaster and vacuum that database in single-user mode.
As a safety device, a whole-table vacuum scan will occur for any table
whose multixact-age is greater than
<xref linkend="guc-autovacuum-multixact-freeze-max-age">.
- This will occur even if autovacuum is nominally disabled.
+ This will occur even if autovacuum is nominally disabled. Whole-table
+ vacuum scans will also occur progressively for all tables, starting with
+ those that have the oldest multixact-age, if the amount of used member
+ storage space exceeds the amount 25% of the addressible storage space.
</para>
</sect3>
</sect2>