Re: Logical Replication of sequences
vignesh C <vignesh21@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 Fri, 5 Sept 2025 at 04:01, Masahiko Sawada <sawada.mshk@gmail.com> wrote: > > On Wed, Aug 20, 2025 at 4:57 AM Amit Kapila <amit.kapila16@gmail.com> wrote: > > > > On Mon, Aug 18, 2025 at 3:36 PM vignesh C <vignesh21@gmail.com> wrote: > > > > > > Thanks for the comments, the updated version has the changes for the same. > > > > > > > I wanted to first discuss a few design points. The patch implements > > "ALTER SUBSCRIPTION ... REFRESH PUBLICATION SEQUENCES" such that it > > copies the existing sequences values and also adds/removes any missing > > sequences. For the second part (add/remove sequences), we already have > > a separate command "ALTER SUBSCRIPTION ... REFRESH PUBLICATION". So, I > > feel the new command should only copy the sequence values, as that > > will keep the interface easy to define and understand. Additionally, > > it will help to simplify the code in the patch, especially in the > > function AlterSubscription_refresh. > > While I agree that the new command just copies the sequence values, > I'm not sure the command should be implemented as an extension of > ALTER SUBSCRIPTION ... REFRESH PUBLICATION command. Probably what the > new command does is quite different from what REFRESH PUBLICATION > command does? Alternatively, the syntax options could be: ALTER SUBSCRIPTION subname RESYNC PUBLICATION SEQUENCES; or ALTER SUBSCRIPTION subname RESYNC SEQUENCES; Do you have a preference between the two? > > > > We previously discussed *not* to launch an apply worker if the > > corresponding publication(s) only publish sequences. See [1]. We > > should consider it again to see if that is a good idea. It will have > > some drawbacks as compared to the current approach of doing sync via > > sync worker. The command could take time for a large number of > > sequences, and on failure, retry won't happen which can happen with > > background workers. Additionally, when the connect option is false for > > a subscription during creation, the user needs to later call REFRESH > > to sync the sequences after enabling the subscription. OTOH, doing the > > sync during the command will bring more predictability and simplify > > the patch. What do others think? > > It seems okay to me that we launch an apply worker for a subscription > corresponding to sequence-only publications. I think the situation > seems somewhat similar to the case where we launch an apply worker > even for a subscription corresponding to empty publications. It would > be quite a rare case in practice where publications have only > sequences. I agree with this. > I guess that it would rather simplify the patch if we can > cut the part of doing the sync during the command (i.e., not > distinguish between table-and-sequence publications and sequence-only > publications), no? Currently, we don’t make a distinction between the two. Just to clarify, could you point me to the specific part of the patch you’re referring to? Regards, Vignesh