v8_fixes.diff.txt
text/plain
Filename: v8_fixes.diff.txt
Type: text/plain
Part: 0
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index 7befc63860..6cad079132 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -7342,7 +7342,7 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
Specifies a fraction of the table size to add to
<varname>autovacuum_vacuum_insert_threshold</varname>
when deciding whether to trigger a <command>VACUUM</command>.
- The default is 0.0, which means that the table size has no effect.
+ The default is 0.01 (1% of table size).
This parameter can only be set in the <filename>postgresql.conf</filename>
file or on the server command line;
but the setting can be overridden for individual tables by
diff --git a/doc/src/sgml/maintenance.sgml b/doc/src/sgml/maintenance.sgml
index dbf418c62a..904fbffd94 100644
--- a/doc/src/sgml/maintenance.sgml
+++ b/doc/src/sgml/maintenance.sgml
@@ -777,20 +777,28 @@ vacuum threshold = vacuum base threshold + vacuum scale factor * number of tuple
<xref linkend="guc-autovacuum-vacuum-scale-factor"/>,
and the number of tuples is
<structname>pg_class</structname>.<structfield>reltuples</structfield>.
- The number of obsolete tuples is obtained from the statistics
- collector; it is a semi-accurate count updated by each
- <command>UPDATE</command> and <command>DELETE</command> operation. (It
- is only semi-accurate because some information might be lost under heavy
- load.) If the <structfield>relfrozenxid</structfield> value of the table is more
+ The table is also vacuumed if the number of tuples inserted since the last
+ vacuum have exceeded the defined insert threshold, which is defined as:
+<programlisting>
+vacuum insert threshold = vacuum base insert threshold + vacuum insert scale factor * number of tuples
+</programlisting>
+ where the vacuum insert base threshold is
+ <xref linkend="guc-autovacuum-vacuum-insert-threshold"/>,
+ and vacuum insert scale factor is
+ <xref linkend="guc-autovacuum-vacuum-insert-scale-factor"/>.
+ Such vacuums may allow the table's <structfield>relfrozenxid</structfield>
+ to be advanced and will reduce the chances of and the impact of any
+ aggressive vacuums.
+ The number of obsolete tuples and the number of inserted tuples are
+ obtained from the statistics collector; it is a semi-accurate count updated by each
+ <command>UPDATE</command>, <command>DELETE</command> and
+ <command>INSERT</command> operation. (It is only semi-accurate because
+ some information might be lost under heavy load.) If the
+ <structfield>relfrozenxid</structfield> value of the table is more
than <varname>vacuum_freeze_table_age</varname> transactions old, an aggressive
vacuum is performed to freeze old tuples and advance
<structfield>relfrozenxid</structfield>; otherwise, only pages that have been modified
since the last vacuum are scanned.
- Finally, a threshold similar to the above is calculated from
- <xref linkend="guc-autovacuum-vacuum-insert-threshold"/> and
- <xref linkend="guc-autovacuum-vacuum-insert-scale-factor"/>.
- Tables that have received more inserts than the calculated threshold
- since the last <command>VACUUM</command> will also be vacuumed.
</para>
<para>
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index b4974a5f20..b7c526abc3 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -3545,7 +3545,7 @@ static struct config_real ConfigureNamesReal[] =
NULL
},
&autovacuum_vac_ins_scale,
- 0.0, 0.0, 1e10,
+ 0.01, 0.0, 1e10,
NULL, NULL, NULL
},
diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample
index cc3df73a82..9988fe40f5 100644
--- a/src/backend/utils/misc/postgresql.conf.sample
+++ b/src/backend/utils/misc/postgresql.conf.sample
@@ -604,7 +604,7 @@
#autovacuum_analyze_threshold = 50 # min number of row updates before
# analyze
#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum
-#autovacuum_vacuum_insert_scale_factor = 0.0 # fraction of table size before
+#autovacuum_vacuum_insert_scale_factor = 0.01 # fraction of table size before
# vacuum
#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze
#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum