Re: Skipping logical replication transactions on subscriber side

Masahiko Sawada <sawada.mshk@gmail.com>

From: Masahiko Sawada <sawada.mshk@gmail.com>
To: "osumi.takamichi@fujitsu.com" <osumi.takamichi@fujitsu.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>, "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>, Alexey Lesovsky <lesovsky@gmail.com>, Peter Eisentraut <peter.eisentraut@enterprisedb.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2021-08-10T05:07:00Z
Lists: pgsql-hackers

Attachments

On Thu, Aug 5, 2021 at 5:58 PM osumi.takamichi@fujitsu.com
<osumi.takamichi@fujitsu.com> wrote:
>
> On Tuesday, August 3, 2021 3:49 PM  Masahiko Sawada <sawada.mshk@gmail.com> wrote:
> > I've attached new patches that incorporate all comments I got so far.
> > Please review them.
> Hi, I had a chance to look at the patch-set during my other development.
> Just let me share some minor cosmetic things.

Thank you for reviewing the patches!

>
>
> [1] unnatural wording ? in v5-0002.
> + * create tells whether to create the new subscription entry if it is not
> + * create tells whether to create the new subscription relation entry if it is
>
> I'm not sure if this wording is correct or not.
> You meant just "tells whether to create ...." ?,
> although we already have 1 other "create tells" in HEAD.

create here means the function argument of
pgstat_get_subscription_entry() and
pgstat_get_subscription_error_entry(). That is, the function argument
'create' tells whether to create the new entry if not found. I
single-quoted the 'create' to avoid confusion.g

>
> [2] typo "kep" in v05-0002.
>
> I think you meant "kept" in below sentence.
>
> +/*
> + * Subscription error statistics kep in the stats collector.  One entry represents
> + * an error that happened during logical replication, reported by the apply worker
> + * (subrelid is InvalidOid) or by the table sync worker (subrelid is a valid OID).

Fixed.

>
> [3] typo "lotigcal" in the v05-0004 commit message.
>
> If incoming change violates any constraint, lotigcal replication stops
> until it's resolved. This commit introduces another way to skip the
> transaction in question.
>
> It should be "logical".

Fixed.

>
> [4] warning of doc build
>
> I've gotten an output like below during my process of make html.
> Could you please check this ?
>
> Link element has no content and no Endterm. Nothing to show in the link to monitoring-pg-stat-subscription-errors

Fixed.

I've attached the latest patches that incorporated all comments I got
so far. Please review them.


Regards,

--
Masahiko Sawada
EDB:  https://www.enterprisedb.com/

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