Re: Logical replication - initial data synchronization - Mailing list pgsql-docs

From Peter Smith
Subject Re: Logical replication - initial data synchronization
Date
Msg-id CAHut+Psrjz8aqMwE9Z9SZ3iZsh06atGo-7iPiSMeMgz-L3z=7w@mail.gmail.com
Whole thread Raw
In response to Re: Logical replication - initial data synchronization  ("David G. Johnston" <david.g.johnston@gmail.com>)
List pgsql-docs
On Tue, Feb 18, 2025 at 11:25 AM David G. Johnston
<david.g.johnston@gmail.com> wrote:
>
> On Sun, Dec 15, 2024 at 11:10 PM Peter Smith <smithpb2250@gmail.com> wrote:
>>
>> On Mon, Nov 25, 2024 at 11:55 AM Peter Smith <smithpb2250@gmail.com> wrote:
>>
>> > "When logical replication of a table starts, PostgreSQL typically
>> > takes a snapshot of the table's data on the publisher database and
>> > copies it to the subscriber."
>> >
>> > This makes it clear that "typically" refers to the snapshot-taking
>> > process, not the timing of replication's start.
>> > ------
>> >
>> > ======
>> > [1] https://github.com/postgres/postgres/commit/4c4aaa19a6fed39e0eb0247625331c3df34d8211
>> >
>>
>> Hi Bruce, There was no reply yet to my 3-week-old post above regarding
>> (what I thought was) the misplaced word "typically" so I am bumping
>> this thread, just in case that post was accidentally overlooked. OTOH,
>> if you disagree and/or don't plan to modify it, please let me know so
>> I can take this thread off my watch list.
>>
>
> Not Bruce here.
>
> I concur with this specific wording observation but feel it points to a larger problem (typically typically does
this...).
>
> The whole paragraph seems to boil down to, and would better worded as:
>
> "By default PostgreSQL initiates "transactional replication", whereby when logical replication begins on each
publishedtable PostgreSQL takes a snapshot and copies those now-static contents to the subscriber.  blah-blah-blah..." 
>
> Which begs the question, what about non-transactional replication?
>
> I think we are using "typically" where "default" should be used and then failing to describe the
non-default/non-typicalbehaviors that also apparently exist. 
>
> I believe this basically boils down to "copy data? true or false" but haven't tried to reason out enough to be
confidentin a rewrite that gets rid of the "typically" with the more definite "default" and mentions the
alternative(s).

Yes. That is my understanding.

IIUC all this is about describing table synchronization. i.e. what
happens when a subscription has the option "copy_data=true", (this is
the "default" setting for a subscription)

The alternative is when the user overrides the default by setting
"copy_data=false",  in which case no initial table synchronization
occurs at all for tables of that subscription.

AFAICT the word "typically" was in this description from years back,
but only in the sense that "typically" users won't change the
subscription's "default" option value. So it's not very helpful and
seems to just be adding doubts where there should be none.

>
> I do get we are on the overview page but if we use either typically or default we still need to lead the reader to
thealternatives/knobs even if it's just a link deeper into the Chapter. 
>
> I also get that not everyone uses the term "transactional replication" but it's our documentation and we should not
beafraid to give the process a label.  If we want to mention aliases as an aside that can be considered as needed. 
>

======
Kind Regards,
Peter Smith.
Fujitsu Australia



pgsql-docs by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: Logical replication - initial data synchronization
Next
From: Amit Langote
Date:
Subject: Re: Minor suggestions for docs regarding json_table