Thread: pg_createsubscriber clarification

pg_createsubscriber clarification

From
Bruce Momjian
Date:
The pg_createsubscriber docs say:

    https://www.postgresql.org/docs/17/app-pgcreatesubscriber.html

    After a successful run, the state of the target server is analogous
    to a fresh logical replication setup. The main difference between
    the logical replication setup and pg_createsubscriber is the
    initial data copy. It does only the synchronization phase, which
    ensures each table is brought up to a synchronized state.

What does "it" and "synchronization phase" mean in "It does only the
synchronization phase"?  Seems this needs improvement.

-- 
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

  Only you can decide what is important to you.



Re: pg_createsubscriber clarification

From
Masahiko Sawada
Date:
On Sun, Jul 28, 2024 at 1:23 AM Bruce Momjian <bruce@momjian.us> wrote:
>
> The pg_createsubscriber docs say:
>
>         https://www.postgresql.org/docs/17/app-pgcreatesubscriber.html
>
>         After a successful run, the state of the target server is analogous
>         to a fresh logical replication setup. The main difference between
>         the logical replication setup and pg_createsubscriber is the
>         initial data copy. It does only the synchronization phase, which
>         ensures each table is brought up to a synchronized state.
>
> What does "it" and "synchronization phase" mean in "It does only the
> synchronization phase"?  Seems this needs improvement.

+1 to improve the description.

I think the term "synchronization phase" comes from the description in
"29.8.1. Initial Snapshot" section[1].

https://www.postgresql.org/docs/17/logical-replication-architecture.html#LOGICAL-REPLICATION-SNAPSHOT

How about the following?

The main difference between the logical replication setup and
pg_createsubscriber is how they synchronize table data.
pg_createsubscriber doesn't copy the initial table data because it
uses the tables with their initial data on the target server. It only
does the synchronization phase, which ensures each table is brought up
to a synchronized state by applying changes using standard logical
replication.

Regards,

--
Masahiko Sawada
Amazon Web Services: https://aws.amazon.com



Re: pg_createsubscriber clarification

From
"Euler Taveira"
Date:
On Sun, Jul 28, 2024, at 1:17 PM, Masahiko Sawada wrote:
I think the term "synchronization phase" comes from the description in
"29.8.1. Initial Snapshot" section[1].

Yes.


How about the following?

The main difference between the logical replication setup and
pg_createsubscriber is how they synchronize table data.
pg_createsubscriber doesn't copy the initial table data because it
uses the tables with their initial data on the target server. It only
does the synchronization phase, which ensures each table is brought up
to a synchronized state by applying changes using standard logical
replication.

I slightly modified your proposal in the attached patch.

Thoughts?


--
Euler Taveira

Attachment