Re: [PATCH] Present all committed transaction to the output plugin

2021-02-21 Thread Tomas Vondra
On 2/21/21 11:05 AM, Markus Wanner wrote: On 21.02.21 03:04, Andres Freund wrote: Cost-wise, yes - a 2pc prepare/commit is expensive enough that comparatively the replay cost is unlikely to be relevant. Good.  I attached an updated patch eliminating only the filtering for empty two-phase t

Re: [PATCH] Present all committed transaction to the output plugin

2021-02-21 Thread Markus Wanner
On 21.02.21 03:04, Andres Freund wrote: Cost-wise, yes - a 2pc prepare/commit is expensive enough that comparatively the replay cost is unlikely to be relevant. Good. I attached an updated patch eliminating only the filtering for empty two-phase transactions. Behaviourally I'm still not co

Re: [PATCH] Present all committed transaction to the output plugin

2021-02-20 Thread Andres Freund
Hi, On 2021-02-20 21:44:30 +0100, Markus Wanner wrote: > On 20.02.21 21:08, Andres Freund wrote: > > It's not free though > > Agreed. It's an additional call to a callback. If it were just a single indirection function call I'd not be bothered. But we need to do a fair bit mroe than that (c.f.

Re: [PATCH] Present all committed transaction to the output plugin

2021-02-20 Thread Markus Wanner
On 20.02.21 21:08, Andres Freund wrote: It's not free though Agreed. It's an additional call to a callback. Do you think that's acceptable if limited to two-phase transactions only? I'm wondering the opposite: What's a potential use case for handing "trivially empty" transactions to the o

Re: [PATCH] Present all committed transaction to the output plugin

2021-02-20 Thread Andres Freund
Hi, On 2021-02-20 13:48:49 +0100, Markus Wanner wrote: > However, that's not what the patch changes. It just moves the decision to > the output plugin, giving it more flexibility. And possibly allowing it to > still take action. It's not free though - there's plenty workloads where there's an x

Re: [PATCH] Present all committed transaction to the output plugin

2021-02-20 Thread Markus Wanner
On 20.02.21 12:15, Amit Kapila wrote: What exactly is the use case to send empty transactions with or without prepared? I'm not saying that output plugins should *send* empty transactions to the replica. I rather agree that this indeed is not wanted in most cases. However, that's not what t

Re: [PATCH] Present all committed transaction to the output plugin

2021-02-20 Thread Amit Kapila
On Fri, Feb 19, 2021 at 6:06 PM Markus Wanner wrote: > > Hi, > > attached is a patch that I think is cleaning up the API between Postgres > and the logical decoding plugin. Up until now, not only transactions > rolled back, but also some committed transactions were filtered and not > presented to