Re: Logical Replication of sequences

From: shveta malik <shveta(dot)malik(at)gmail(dot)com>
To: Peter Smith <smithpb2250(at)gmail(dot)com>
Cc: Nisha Moond <nisha(dot)moond412(at)gmail(dot)com>, vignesh C <vignesh21(at)gmail(dot)com>, "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, Shlok Kyal <shlok(dot)kyal(dot)oss(at)gmail(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Peter Eisentraut <peter(at)eisentraut(dot)org>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Euler Taveira <euler(at)eulerto(dot)com>, Michael Paquier <michael(at)paquier(dot)xyz>, "Zhijie Hou (Fujitsu)" <houzj(dot)fnst(at)fujitsu(dot)com>, "Jonathan S(dot) Katz" <jkatz(at)postgresql(dot)org>, shveta malik <shveta(dot)malik(at)gmail(dot)com>
Subject: Re: Logical Replication of sequences
Date: 2025-05-21 10:41:22
Message-ID: CAJpy0uBvzqGucZnTRK5WRRXuWTj7JG0h560NCKseNdA6JZA5Dg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, May 20, 2025 at 11:13 AM Peter Smith <smithpb2250(at)gmail(dot)com> wrote:
>
> > Test-scenario:
> > --Created 250 sequences on both pub and sub.
> > --There were 10 sequences mismatched.
> > --Sequence replication worked as expected. Logs look better now:
> >
> > LOG: Logical replication sequence synchronization for subscription
> > "sub1" - total unsynchronized: 250; batch #1 = 100 attempted, 97
> > succeeded, 3 mismatched
> > LOG: Logical replication sequence synchronization for subscription
> > "sub1" - total unsynchronized: 250; batch #2 = 100 attempted, 95
> > succeeded, 5 mismatched
> > LOG: Logical replication sequence synchronization for subscription
> > "sub1" - total unsynchronized: 250; batch #3 = 50 attempted, 48
> > succeeded, 2 mismatched
> >
>
> When there are many batches required, it seems a bit strange to repeat
> the same "total unsynchronized" over and over.
>
> Would it be better to show the total number once, and thereafter show
> the number of sequences remaining to be processed as they tick down?
>
> e.g.
> LOG: Logical replication sequence synchronization for subscription
> "sub1" - total unsynchronized = 250
> LOG: Logical replication sequence synchronization for subscription
> "sub1" - batch #1 = 100 attempted, 97 succeeded, 3 mismatched, 150
> remaining
> LOG: Logical replication sequence synchronization for subscription
> "sub1" - batch #2 = 100 attempted, 95 succeeded, 5 mismatched, 50
> remaining
> LOG: Logical replication sequence synchronization for subscription
> "sub1" - batch #3 = 50 attempted, 48 succeeded, 2 mismatched, 0
> remaining

+1 on log change suggestions.

Please find few more comments:

1)
Temporary sequences will not be replicated, shall we mention this in
doc under '29.7. Replicating Sequences'?

2)
CREATE publication pub1 for all sequences WITH (publish = 'insert,
update, truncate');

I think it does not make sense to give 'publish' as above (or
publish_via_partition_root) for 'all sequences' publication. Shall we
display a WARNING that such will be ignored for 'all sequences' and
let the create-publication go ahead? Thoughts? Also the doc for
publish* option in the CREATE-PUBLICATION page needs to specify that
these options are not-applicable for ALL SEQUENCES publication.

3)
It will be good to move create_publication.sgml as well to the last
patch where all other doc changes are present. I was trying to find
this change in the last patch but ultimately found it in pacth002.

4)
Currently the log is:

------
LOG: logical replication sequence synchronization worker for
subscription "sub1" has started
LOG: Logical replication sequence synchronization for subscription
"sub1" - total unsynchronized: 1; batch #1 = 1 attempted, 0 succeeded,
1 mismatched
WARNING: parameters differ for the remote and local sequences
("public.myseq34") for subscription "sub1"
HINT: Alter/Re-create local sequences to have the same parameters as
the remote sequences.
WARNING: sequence synchronization worker failed: one or more
sequences have mismatched parameters between the publisher and
subscriber
LOG: logical replication sequence synchronization worker for
subscription "sub1" has finished
-----

Do we need both?
--WARNING: sequence synchronization worker failed.
--LOG: logical replication sequence synchronization worker for
subscription "sub1" has finished

This WARNING repeats previously stated information. I feel we can get
rid of it, unless there is a chance of some new error which we are
trying to display in this WARNING other than mismatched seq error?

thanks
Shveta

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message jian he 2025-05-21 10:44:18 ALTER DOMAIN ADD NOT NULL NOT VALID
Previous Message Amit Langote 2025-05-21 10:22:26 Re: generic plans and "initial" pruning