Re: Skipping logical replication transactions on subscriber side
Masahiko Sawada <sawada.mshk@gmail.com>
On Wed, Jan 26, 2022 at 12:14 AM David G. Johnston <david.g.johnston@gmail.com> wrote: > > > On Tue, Jan 25, 2022 at 8:09 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote: >> >> On Tue, Jan 25, 2022 at 11:58 PM David G. Johnston >> <david.g.johnston@gmail.com> wrote: >> > >> > On Tue, Jan 25, 2022 at 7:47 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote: >> >> >> >> Yeah, I think it's a good idea to clear the subskipxid after the first >> >> transaction regardless of whether the worker skipped it. >> >> >> > >> > So basically instead of stopping the worker with an error you suggest having the worker continue applying changes (after resetting subskipxid, and - arguably - the ?_error_* fields). Log the transaction xid mis-match as a warning in the log file as opposed to an error. >> >> Agreed, I think it's better to log a warning than to raise an error. >> In the case where the user specified the wrong XID, the worker should >> fail again due to the same error. >> > > If it remains possible for the system to accept a wrongly specified XID I would agree that this behavior is preferable. At least when the user wonders why the skip didn't work and they are seeing the same error again they will have a log entry warning telling them their XID choice was incorrect. Yes. > I would prefer that the system not accept a wrongly specified XID and the user be told directly and sooner that their XID choice was incorrect. Given that we cannot use rely on the pg_stat_subscription_workers view for this purpose, we would need either a new sub-system that tracks each logical replication status so the system can set the error XID to subskipxid, or to wait for shared-memory based stats collector. While agreeing that ideally, we need such a sub-system I'm concerned that everyone will agree to add complexity for this feature. That having been said, if there is a significant need for it, we can implement it as an improvement. Regards, -- Masahiko Sawada EDB: https://www.enterprisedb.com/
Commits
-
Test ALIGNOF_DOUBLE==4 compatibility under ALIGNOF_DOUBLE==8.
- c1da0acbb06e 15.0 landed
-
Reorder subskiplsn in pg_subscription to avoid alignment issues.
- 79b716cfb7a1 15.0 landed
-
Add ALTER SUBSCRIPTION ... SKIP.
- 208c5d65bbd6 15.0 landed
-
Optionally disable subscriptions on error.
- 705e20f8550c 15.0 cited
-
Update docs of logical replication for commit 8d74fc96db.
- 85c61ba8920b 15.0 landed
-
Respect permissions within logical replication.
- a2ab9c06ea15 15.0 cited
-
Fix regression test failure caused by commit 8d74fc96db.
- 41e66fee0516 15.0 landed
-
Add a view to show the stats of subscription workers.
- 8d74fc96db5f 15.0 landed
-
Add logical change details to logical replication worker errcontext.
- abc0910e2e0a 15.0 landed
-
Rename LOGICAL_REP_MSG_STREAM_END to LOGICAL_REP_MSG_STREAM_STOP.
- 4cd7a1896871 15.0 landed
-
Fix typo in protocol.sgml.
- e1915646658d 14.0 landed
- 0ac1aee0d7d8 15.0 landed
-
Remove unused argument in apply_handle_commit_internal().
- f4b939f1a372 14.0 landed
- 16bd4becee32 15.0 landed
-
Fix replication of in-progress transactions in tablesync worker.
- 0926e96c4934 14.0 cited
-
Reorder pg_sequence columns to avoid alignment issue
- f3b421da5f4a 10.0 cited