diff options
Diffstat (limited to 'doc/src')
-rw-r--r-- | doc/src/sgml/logical-replication.sgml | 17 | ||||
-rw-r--r-- | doc/src/sgml/monitoring.sgml | 77 |
2 files changed, 84 insertions, 10 deletions
diff --git a/doc/src/sgml/logical-replication.sgml b/doc/src/sgml/logical-replication.sgml index 46917f9f94f..df62eb45ff8 100644 --- a/doc/src/sgml/logical-replication.sgml +++ b/doc/src/sgml/logical-replication.sgml @@ -1582,10 +1582,11 @@ test_sub=# SELECT * FROM t1 ORDER BY id; </para> <para> - Additional logging is triggered in the following <firstterm>conflict</firstterm> - cases: + Additional logging is triggered, and the conflict statistics are collected (displayed in the + <link linkend="monitoring-pg-stat-subscription-stats"><structname>pg_stat_subscription_stats</structname></link> view) + in the following <firstterm>conflict</firstterm> cases: <variablelist> - <varlistentry> + <varlistentry id="conflict-insert-exists" xreflabel="insert_exists"> <term><literal>insert_exists</literal></term> <listitem> <para> @@ -1598,7 +1599,7 @@ test_sub=# SELECT * FROM t1 ORDER BY id; </para> </listitem> </varlistentry> - <varlistentry> + <varlistentry id="conflict-update-origin-differs" xreflabel="update_origin_differs"> <term><literal>update_origin_differs</literal></term> <listitem> <para> @@ -1610,7 +1611,7 @@ test_sub=# SELECT * FROM t1 ORDER BY id; </para> </listitem> </varlistentry> - <varlistentry> + <varlistentry id="conflict-update-exists" xreflabel="update_exists"> <term><literal>update_exists</literal></term> <listitem> <para> @@ -1627,7 +1628,7 @@ test_sub=# SELECT * FROM t1 ORDER BY id; </para> </listitem> </varlistentry> - <varlistentry> + <varlistentry id="conflict-update-missing" xreflabel="update_missing"> <term><literal>update_missing</literal></term> <listitem> <para> @@ -1636,7 +1637,7 @@ test_sub=# SELECT * FROM t1 ORDER BY id; </para> </listitem> </varlistentry> - <varlistentry> + <varlistentry id="conflict-delete-origin-differs" xreflabel="delete_origin_differs"> <term><literal>delete_origin_differs</literal></term> <listitem> <para> @@ -1648,7 +1649,7 @@ test_sub=# SELECT * FROM t1 ORDER BY id; </para> </listitem> </varlistentry> - <varlistentry> + <varlistentry id="conflict-delete-missing" xreflabel="delete_missing"> <term><literal>delete_missing</literal></term> <listitem> <para> diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml index 55417a6fa9d..933de6fe07f 100644 --- a/doc/src/sgml/monitoring.sgml +++ b/doc/src/sgml/monitoring.sgml @@ -507,7 +507,7 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser <row> <entry><structname>pg_stat_subscription_stats</structname><indexterm><primary>pg_stat_subscription_stats</primary></indexterm></entry> - <entry>One row per subscription, showing statistics about errors. + <entry>One row per subscription, showing statistics about errors and conflicts. See <link linkend="monitoring-pg-stat-subscription-stats"> <structname>pg_stat_subscription_stats</structname></link> for details. </entry> @@ -2157,7 +2157,10 @@ description | Waiting for a newly initialized WAL file to reach durable storage <structfield>apply_error_count</structfield> <type>bigint</type> </para> <para> - Number of times an error occurred while applying changes + Number of times an error occurred while applying changes. Note that any + conflict resulting in an apply error will be counted in both + <literal>apply_error_count</literal> and the corresponding conflict + count (e.g., <literal>confl_*</literal>). </para></entry> </row> @@ -2173,6 +2176,76 @@ description | Waiting for a newly initialized WAL file to reach durable storage <row> <entry role="catalog_table_entry"><para role="column_definition"> + <structfield>confl_insert_exists</structfield> <type>bigint</type> + </para> + <para> + Number of times a row insertion violated a + <literal>NOT DEFERRABLE</literal> unique constraint during the + application of changes. See <xref linkend="conflict-insert-exists"/> + for details about this conflict. + </para></entry> + </row> + + <row> + <entry role="catalog_table_entry"><para role="column_definition"> + <structfield>confl_update_origin_differs</structfield> <type>bigint</type> + </para> + <para> + Number of times an update was applied to a row that had been previously + modified by another source during the application of changes. See + <xref linkend="conflict-update-origin-differs"/> for details about this + conflict. + </para></entry> + </row> + + <row> + <entry role="catalog_table_entry"><para role="column_definition"> + <structfield>confl_update_exists</structfield> <type>bigint</type> + </para> + <para> + Number of times that an updated row value violated a + <literal>NOT DEFERRABLE</literal> unique constraint during the + application of changes. See <xref linkend="conflict-update-exists"/> + for details about this conflict. + </para></entry> + </row> + + <row> + <entry role="catalog_table_entry"><para role="column_definition"> + <structfield>confl_update_missing</structfield> <type>bigint</type> + </para> + <para> + Number of times the tuple to be updated was not found during the + application of changes. See <xref linkend="conflict-update-missing"/> + for details about this conflict. + </para></entry> + </row> + + <row> + <entry role="catalog_table_entry"><para role="column_definition"> + <structfield>confl_delete_origin_differs</structfield> <type>bigint</type> + </para> + <para> + Number of times a delete operation was applied to row that had been + previously modified by another source during the application of changes. + See <xref linkend="conflict-delete-origin-differs"/> for details about + this conflict. + </para></entry> + </row> + + <row> + <entry role="catalog_table_entry"><para role="column_definition"> + <structfield>confl_delete_missing</structfield> <type>bigint</type> + </para> + <para> + Number of times the tuple to be deleted was not found during the application + of changes. See <xref linkend="conflict-delete-missing"/> for details + about this conflict. + </para></entry> + </row> + + <row> + <entry role="catalog_table_entry"><para role="column_definition"> <structfield>stats_reset</structfield> <type>timestamp with time zone</type> </para> <para> |