Re: Logical Replication of sequences
shveta malik <shveta.malik@gmail.com>
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Doc: Add documentation for sequence synchronization.
- 55cefadde874 19 (unreleased) landed
-
Remove unused assignment in CREATE PUBLICATION grammar.
- bfb7419b0bbe 19 (unreleased) landed
-
Add seq_sync_error_count to subscription statistics.
- f6a4c498dcf6 19 (unreleased) landed
-
Fix few issues in commit 5509055d69.
- 5a4eba558aa7 19 (unreleased) landed
-
Add sequence synchronization for logical replication.
- 5509055d6956 19 (unreleased) landed
-
Add worker type argument to logical replication worker functions.
- 3e8e05596a02 19 (unreleased) landed
-
Introduce "REFRESH SEQUENCES" for subscriptions.
- f0b3573c3aac 19 (unreleased) landed
-
Refactor logical worker synchronization code into a separate file.
- 41c674d2e31e 19 (unreleased) landed
-
Standardize use of REFRESH PUBLICATION in code and messages.
- 2436b8c047ff 19 (unreleased) landed
-
Add "ALL SEQUENCES" support to publications.
- 96b378497346 19 (unreleased) landed
-
Expose sequence page LSN via pg_get_sequence_data.
- b93172ca59f4 19 (unreleased) landed
-
Resume conflict-relevant data retention automatically.
- 0d48d393d465 19 (unreleased) cited
-
Post-commit review fixes for 228c370868.
- 1f7e9ba3ac4e 19 (unreleased) cited
-
Generate GUC tables from .dat file
- 63599896545c 19 (unreleased) cited
On Tue, May 20, 2025 at 11:13 AM Peter Smith <smithpb2250@gmail.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