From 28915c7db4da4eaffb8eb0dc5c04c87dcf345eb6 Mon Sep 17 00:00:00 2001 From: Simon Riggs <simon@2ndQuadrant.com> Date: Fri, 1 Sep 2017 07:55:00 +0100 Subject: [PATCH] Add note about diskspace usage of pg_commit_ts Author: Thomas Munro --- doc/src/sgml/maintenance.sgml | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/doc/src/sgml/maintenance.sgml b/doc/src/sgml/maintenance.sgml index fe1e0ed2b3d..616aece6c0e 100644 --- a/doc/src/sgml/maintenance.sgml +++ b/doc/src/sgml/maintenance.sgml @@ -526,19 +526,23 @@ <para> The sole disadvantage of increasing <varname>autovacuum_freeze_max_age</> - (and <varname>vacuum_freeze_table_age</> along with it) - is that the <filename>pg_xact</> subdirectory of the database cluster - will take more space, because it must store the commit status of all - transactions back to the <varname>autovacuum_freeze_max_age</> horizon. - The commit status uses two bits per transaction, so if - <varname>autovacuum_freeze_max_age</> is set to its maximum allowed - value of two billion, <filename>pg_xact</> can be expected to - grow to about half a gigabyte. If this is trivial compared to your - total database size, setting <varname>autovacuum_freeze_max_age</> to - its maximum allowed value is recommended. Otherwise, set it depending - on what you are willing to allow for <filename>pg_xact</> storage. - (The default, 200 million transactions, translates to about 50MB of - <filename>pg_xact</> storage.) + (and <varname>vacuum_freeze_table_age</> along with it) is that + the <filename>pg_xact</> and <filename>pg_commit_ts</filename> + subdirectories of the database cluster will take more space, because it + must store the commit status and (if <varname>track_commit_timestamp</> is + enabled) timestamp of all transactions back to + the <varname>autovacuum_freeze_max_age</> horizon. The commit status uses + two bits per transaction, so if + <varname>autovacuum_freeze_max_age</> is set to its maximum allowed value + of two billion, <filename>pg_xact</> can be expected to grow to about half + a gigabyte and <filename>pg_commit_ts</filename> to about 20GB. If this + is trivial compared to your total database size, + setting <varname>autovacuum_freeze_max_age</> to its maximum allowed value + is recommended. Otherwise, set it depending on what you are willing to + allow for <filename>pg_xact</> and <filename>pg_commit_ts</> storage. + (The default, 200 million transactions, translates to about 50MB + of <filename>pg_xact</> storage and about 2GB of <filename>pg_commit_ts</> + storage.) </para> <para>