Re: Local visibility with logical decoding - Mailing list pgsql-hackers

From Andres Freund
Subject Re: Local visibility with logical decoding
Date
Msg-id 20200720202134.av7nr72ysijrhq3n@alap3.anarazel.de
Whole thread Raw
In response to Local visibility with logical decoding  (Marko Tiikkaja <marko@joh.to>)
List pgsql-hackers
Hi,

On 2020-07-20 17:27:30 +0300, Marko Tiikkaja wrote:
> It appears that when logical decoding sends out the data from the output
> plugin, it is not guaranteed that the decoded transaction's effects are
> visible on the source server.  Is this the way it's supposed to work?

At the moment the visibility behaviour is basically the same as crash
recovery / standbys. And they just look at the WAL...


> If so, would doing something like this in the output plugin be reasonable?
> 
>     TransactionId xid = transaction->xid;
>     if (transaction->is_known_as_subxact)
>         xid = transaction->toplevel_xid;
> 
>     if (TransactionIdIsInProgress(xid))
>         XactLockTableWait(xid, NULL, NULL, XLTW_None);

I'd not be surprised if this had a potential to cause deadlocks.

Greetings,

Andres Freund



pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: Issue with cancel_before_shmem_exit while searching to remove a particular registered exit callbacks
Next
From: Andres Freund
Date:
Subject: Re: Allow ERROR from heap_prepare_freeze_tuple to be downgraded to WARNING