Re: [PATCH] add concurrent_abort callback for output plugin

Ajin Cherian <itsajin@gmail.com>

From: Ajin Cherian <itsajin@gmail.com>
To: Markus Wanner <markus.wanner@enterprisedb.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-03-30T04:48:30Z
Lists: pgsql-hackers

Attachments

On Mon, Mar 29, 2021 at 10:09 PM Markus Wanner <
markus.wanner@enterprisedb.com> wrote:

> On 29.03.21 13:02, Ajin Cherian wrote:
> > Nice catch, Markus.
> > Interesting suggestion Amit. Let me try and code this.
>
> Thanks, Ajin.  Please consider this concurrent_abort callback as well.
> I think it provides more flexibility for the output plugin and I would
> therefore prefer it over a solution that hides this.  It clearly makes
> all potential optimizations impossible, as it means the output plugin
> cannot distinguish between a proper PREAPRE and a bail-out PREPARE (that
> does not fully replicate the PREPARE as on the origin node, either,
> which I think is dangerous).
>
>
I understand your concern Markus, but I will leave it to one of the
committers to decide on the new callback.
For now, I've created a patch that addresses the problem reported using the
existing callbacks.
Do have a look if this fixes the problem reported.

regards,
Ajin Cherian
Fujitsu Australia

Commits

  1. Avoid sending prepare multiple times while decoding.

  2. Ensure to send a prepare after we detect concurrent abort during decoding.