Re: Skipping logical replication transactions on subscriber side
Amit Kapila <amit.kapila16@gmail.com>
On Mon, Nov 1, 2021 at 7:18 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote: > > On Fri, Oct 29, 2021 at 8:20 PM Amit Kapila <amit.kapila16@gmail.com> wrote: > > > > > > Fair enough. So statistics can be removed either by vacuum or drop > > subscription. Also, if we go by this logic then there is no harm in > > retaining the stat entries for tablesync errors. Why have different > > behavior for apply and tablesync workers? > > My understanding is that the subscription worker statistics entry > corresponds to workers (but not physical workers since the physical > process is changed after restarting). So if the worker finishes its > jobs, it is no longer necessary to show errors since further problems > will not occur after that. Table sync worker’s job finishes when > completing table copy (unless table sync is performed again by REFRESH > PUBLICATION) whereas apply worker’s job finishes when the subscription > is dropped. > Actually, I am not very sure how users can use the old error information after we allowed skipping the conflicting xid. Say, if they want to add/remove some constraints on the table based on previous errors then they might want to refer to errors of both the apply worker and table sync worker. > Also, I’m concerned about a situation like where a lot of > table sync failed. In which case, if we don’t drop table sync worker > statistics after completing its job, we end up having a lot of entries > in the view unless the subscription is dropped. > True, but the same could be said for apply workers where errors can be accumulated over a period of time. > > > > I have another question in this regard. Currently, the reset function > > seems to be resetting only the first stat entry for a subscription. > > But can't we have multiple stat entries for a subscription considering > > the view's cumulative nature? > > I might be missing your points but I think that with the current > patch, the view has multiple entries for a subscription. That is, > there is one apply worker stats and multiple table sync worker stats > per subscription. > Can't we have multiple entries for one apply worker? > And pg_stat_reset_subscription() function can reset > any stats by specifying subscription OID and relation OID. > Say, if the user has supplied just subscription OID then isn't it better to reset all the error entries for that subscription? -- With Regards, Amit Kapila.
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