@@ -2709,65 +2709,6 @@ include_dir 'conf.d'
27092709 </para>
27102710 </listitem>
27112711 </varlistentry>
2712-
2713- <varlistentry id="guc-old-snapshot-threshold" xreflabel="old_snapshot_threshold">
2714- <term><varname>old_snapshot_threshold</varname> (<type>integer</type>)
2715- <indexterm>
2716- <primary><varname>old_snapshot_threshold</varname> configuration parameter</primary>
2717- </indexterm>
2718- </term>
2719- <listitem>
2720- <para>
2721- Sets the minimum amount of time that a query snapshot can be used
2722- without risk of a <quote>snapshot too old</quote> error occurring
2723- when using the snapshot. Data that has been dead for longer than
2724- this threshold is allowed to be vacuumed away. This can help
2725- prevent bloat in the face of snapshots which remain in use for a
2726- long time. To prevent incorrect results due to cleanup of data which
2727- would otherwise be visible to the snapshot, an error is generated
2728- when the snapshot is older than this threshold and the snapshot is
2729- used to read a page which has been modified since the snapshot was
2730- built.
2731- </para>
2732-
2733- <para>
2734- If this value is specified without units, it is taken as minutes.
2735- A value of <literal>-1</literal> (the default) disables this feature,
2736- effectively setting the snapshot age limit to infinity.
2737- This parameter can only be set at server start.
2738- </para>
2739-
2740- <para>
2741- Useful values for production work probably range from a small number
2742- of hours to a few days. Small values (such as <literal>0</literal> or
2743- <literal>1min</literal>) are only allowed because they may sometimes be
2744- useful for testing. While a setting as high as <literal>60d</literal> is
2745- allowed, please note that in many workloads extreme bloat or
2746- transaction ID wraparound may occur in much shorter time frames.
2747- </para>
2748-
2749- <para>
2750- When this feature is enabled, freed space at the end of a relation
2751- cannot be released to the operating system, since that could remove
2752- information needed to detect the <quote>snapshot too old</quote>
2753- condition. All space allocated to a relation remains associated with
2754- that relation for reuse only within that relation unless explicitly
2755- freed (for example, with <command>VACUUM FULL</command>).
2756- </para>
2757-
2758- <para>
2759- This setting does not attempt to guarantee that an error will be
2760- generated under any particular circumstances. In fact, if the
2761- correct results can be generated from (for example) a cursor which
2762- has materialized a result set, no error will be generated even if the
2763- underlying rows in the referenced table have been vacuumed away.
2764- Some tables cannot safely be vacuumed early, and so will not be
2765- affected by this setting, such as system catalogs. For such tables
2766- this setting will neither reduce bloat nor create a possibility
2767- of a <quote>snapshot too old</quote> error on scanning.
2768- </para>
2769- </listitem>
2770- </varlistentry>
27712712 </variablelist>
27722713 </sect2>
27732714 </sect1>
@@ -4783,16 +4724,6 @@ ANY <replaceable class="parameter">num_sync</replaceable> ( <replaceable class="
47834724 until it eventually reaches the primary. Standbys make no other use
47844725 of feedback they receive other than to pass upstream.
47854726 </para>
4786- <para>
4787- This setting does not override the behavior of
4788- <varname>old_snapshot_threshold</varname> on the primary; a snapshot on the
4789- standby which exceeds the primary's age threshold can become invalid,
4790- resulting in cancellation of transactions on the standby. This is
4791- because <varname>old_snapshot_threshold</varname> is intended to provide an
4792- absolute limit on the time which dead rows can contribute to bloat,
4793- which would otherwise be violated because of the configuration of a
4794- standby.
4795- </para>
47964727 </listitem>
47974728 </varlistentry>
47984729
0 commit comments