RE: Skipping logical replication transactions on subscriber side

Zhijie Hou (Fujitsu) <houzj.fnst@fujitsu.com>

From: "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>
To: Masahiko Sawada <sawada.mshk@gmail.com>
Cc: Greg Nancarrow <gregn4422@gmail.com>, "osumi.takamichi@fujitsu.com" <osumi.takamichi@fujitsu.com>, Alexey Lesovsky <lesovsky@gmail.com>, Peter Eisentraut <peter.eisentraut@enterprisedb.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>, Amit Kapila <amit.kapila16@gmail.com>
Date: 2021-08-18T07:19:07Z
Lists: pgsql-hackers
On Wed, Aug 18, 2021 2:41 PM Masahiko Sawada <sawada.mshk@gmail.com> wrote:
> 
> On Wed, Aug 18, 2021 at 3:15 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
> >
> > On Wed, Aug 18, 2021 at 10:00 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote:
> > >
> > > In addition of a code readability, there is a description in the doc
> > > that mentions "Stream End" but we describe "Stream Stop" in the
> > > later description, which seems a bug in the doc to me:
> > >
> >
> > Doc changes looks good to me. But, I have question for code change:
> >
> > --- a/src/include/replication/logicalproto.h
> > +++ b/src/include/replication/logicalproto.h
> > @@ -65,7 +65,7 @@ typedef enum LogicalRepMsgType
> >   LOGICAL_REP_MSG_COMMIT_PREPARED = 'K',
> >   LOGICAL_REP_MSG_ROLLBACK_PREPARED = 'r',
> >   LOGICAL_REP_MSG_STREAM_START = 'S',
> > - LOGICAL_REP_MSG_STREAM_END = 'E',
> > + LOGICAL_REP_MSG_STREAM_STOP = 'E',
> >   LOGICAL_REP_MSG_STREAM_COMMIT = 'c',
> >
> > As this is changing the enum name and if any extension (logical
> > replication extension) has started using it then they would require a
> > change. As this is the latest change in PG-14, so it might be okay but
> > OTOH, as this is just a code readability change, shall we do it only
> > for PG-15?
> 
> I think that the doc changes could be backpatched to PG14 but I think we
> should do the code change only for PG15.

+1, and the patch looks good to me.

Best regards,
Hou zj

Commits

  1. Test ALIGNOF_DOUBLE==4 compatibility under ALIGNOF_DOUBLE==8.

  2. Reorder subskiplsn in pg_subscription to avoid alignment issues.

  3. Add ALTER SUBSCRIPTION ... SKIP.

  4. Optionally disable subscriptions on error.

  5. Update docs of logical replication for commit 8d74fc96db.

  6. Respect permissions within logical replication.

  7. Fix regression test failure caused by commit 8d74fc96db.

  8. Add a view to show the stats of subscription workers.

  9. Add logical change details to logical replication worker errcontext.

  10. Rename LOGICAL_REP_MSG_STREAM_END to LOGICAL_REP_MSG_STREAM_STOP.

  11. Fix typo in protocol.sgml.

  12. Remove unused argument in apply_handle_commit_internal().

  13. Fix replication of in-progress transactions in tablesync worker.

  14. Reorder pg_sequence columns to avoid alignment issue