Re: Skipping logical replication transactions on subscriber side
Masahiko Sawada <sawada.mshk@gmail.com>
On Fri, Jan 21, 2022 at 9:13 PM Amit Kapila <amit.kapila16@gmail.com> wrote: > > On Fri, Jan 21, 2022 at 5:25 PM Amit Kapila <amit.kapila16@gmail.com> wrote: > > > > On Fri, Jan 21, 2022 at 10:10 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote: > > > > > > > Few things that I think we can improve in 028_skip_xact.pl are as follows: > > > > After CREATE SUBSCRIPTION, wait for initial sync to be over and > > two_phase state to be enabled. Please see 021_twophase. For the > > streaming case, we might be able to ensure streaming even with lesser > > data. Can you please try that? > > > > I noticed that the newly added test by this patch takes time is on the > upper side. See comparison with the subscription test that takes max > time: > [17:38:49] t/028_skip_xact.pl ................. ok 9298 ms > [17:38:59] t/100_bugs.pl ...................... ok 11349 ms > > I think we can reduce time by removing some stream tests without much > impacting on coverage, possibly related to 2PC and streaming together, > and if you do that we probably don't need a subscription with both 2PC > and streaming enabled. Agreed. In addition to that, after some tests, I realized that the two tests of ROLLBACK PREPARED are not stable. If the walsender detects a concurrent abort of the transaction that is being decoded, it’s possible that it sends only beigin_prepare and prepare messages, and consequently. If this happens before setting skip_xid, a unique key constraint violation doesn’t occur on the subscription, and consequently, skip_xid is not cleared. We can reduce the possibility by setting a very high value to wal_retrieve_retry_interval but I think it’s better to remove them. What do you think? 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