@@ -2017,18 +2017,20 @@ CONTEXT: processing remote data for replication origin "pg_16395" during "INSER
2017
2017
<title>Initial Snapshot</title>
2018
2018
<para>
2019
2019
The initial data in existing subscribed tables are snapshotted and
2020
- copied in a parallel instance of a special kind of apply process.
2021
- This process will create its own replication slot and copy the existing
2022
- data. As soon as the copy is finished the table contents will become
2023
- visible to other backends. Once existing data is copied, the worker
2024
- enters synchronization mode, which ensures that the table is brought
2025
- up to a synchronized state with the main apply process by streaming
2026
- any changes that happened during the initial data copy using standard
2027
- logical replication. During this synchronization phase, the changes
2028
- are applied and committed in the same order as they happened on the
2029
- publisher. Once synchronization is done, control of the
2030
- replication of the table is given back to the main apply process where
2031
- replication continues as normal.
2020
+ copied in a parallel instances of a special kind of apply process.
2021
+ These special apply processes are dedicated table synchronization
2022
+ workers, spawned for each table to be synchronized. Each table
2023
+ synchronization process will create its own replication slot and
2024
+ copy the existing data. As soon as the copy is finished the table
2025
+ contents will become visible to other backends. Once existing data
2026
+ is copied, the worker enters synchronization mode, which ensures
2027
+ that the table is brought up to a synchronized state with the main
2028
+ apply process by streaming any changes that happened during the
2029
+ initial data copy using standard logical replication. During this
2030
+ synchronization phase, the changes are applied and committed in the same
2031
+ order as they happened on the publisher. Once synchronization is done,
2032
+ control of the replication of the table is given back to the main apply
2033
+ process where replication continues as normal.
2032
2034
</para>
2033
2035
<note>
2034
2036
<para>
@@ -2039,6 +2041,15 @@ CONTEXT: processing remote data for replication origin "pg_16395" during "INSER
2039
2041
when copying the existing table data.
2040
2042
</para>
2041
2043
</note>
2044
+ <note>
2045
+ <para>
2046
+ If a table synchronization worker fails during copy, the apply worker
2047
+ detects the failure and respawns the table synchronization worker to
2048
+ continue the synchronization process. This behaviour ensures that
2049
+ transient errors do not permanently disrupt the replication setup. See
2050
+ also <link linkend="guc-wal-retrieve-retry-interval"><varname>wal_retrieve_retry_interval</varname></link>.
2051
+ </para>
2052
+ </note>
2042
2053
</sect2>
2043
2054
</sect1>
2044
2055
0 commit comments