Re: logical decoding of two-phase transactions

From: Stas Kelvich <s(dot)kelvich(at)postgrespro(dot)ru>
To: Craig Ringer <craig(at)2ndquadrant(dot)com>
Cc: Petr Jelinek <petr(dot)jelinek(at)2ndquadrant(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>, Robert Haas <robertmhaas(at)gmail(dot)com>
Subject: Re: logical decoding of two-phase transactions
Date: 2017-03-20 11:10:09
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

> On 20 Mar 2017, at 11:32, Craig Ringer <craig(at)2ndquadrant(dot)com> wrote:
> On 19 March 2017 at 21:26, Petr Jelinek <petr(dot)jelinek(at)2ndquadrant(dot)com> wrote:
>> I think only genam would need changes to do two-phase scan for this as
>> the catalog scans should ultimately go there. It's going to slow down
>> things but we could limit the impact by doing the two-phase scan only
>> when historical snapshot is in use and the tx being decoded changed
>> catalogs (we already have global knowledge of the first one, and it
>> would be trivial to add the second one as we have local knowledge of
>> that as well).
> TBH, I have no idea how to approach the genam changes for the proposed
> double-scan method. It sounds like Stas has some idea how to proceed
> though (right?)

I thought about having special field (or reusing one of the existing fields)
in snapshot struct to force filtering xmax > snap->xmax or xmin = snap->xmin
as Petr suggested. Then this logic can reside in ReorderBufferCommit().
However this is not solving problem with catcache, so I'm looking into it right now.

> On 17 Mar 2017, at 05:38, Craig Ringer <craig(at)2ndquadrant(dot)com> wrote:
> On 16 March 2017 at 19:52, Stas Kelvich <s(dot)kelvich(at)postgrespro(dot)ru> wrote:
>> I’m working right now on issue with building snapshots for decoding prepared tx.
>> I hope I'll send updated patch later today.
> Great.
> What approach are you taking?

Just as before I marking this transaction committed in snapbuilder, but after
decoding I delete this transaction from xip (which holds committed transactions
in case of historic snapshot).

> --
> Craig Ringer
> PostgreSQL Development, 24x7 Support, Training & Services

In response to


Browse pgsql-hackers by date

  From Date Subject
Next Message Alexander Korotkov 2017-03-20 11:24:45 Re: PinBuffer() no longer makes use of strategy
Previous Message Ronan Dunklau 2017-03-20 10:31:10 [Proposal] Make the optimiser aware of partitions ordering