Re: logical decoding and replication of sequences, take 2

Robert Haas <robertmhaas@gmail.com>

From: Robert Haas <robertmhaas@gmail.com>
To: Dilip Kumar <dilipbalaut@gmail.com>
Cc: Tomas Vondra <tomas.vondra@enterprisedb.com>, Amit Kapila <amit.kapila16@gmail.com>, Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>, "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>, "Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Masahiko Sawada <sawada.mshk@gmail.com>, Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Date: 2024-02-21T07:53:57Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Migrate logical slots to the new node during an upgrade.

  2. Make test_decoding ddl.out shorter

  3. Fix snapshot handling in logicalmsg_decode

  4. doc: Adjust a few more references to "postmaster"

  5. Revert "Logical decoding of sequences"

On Wed, Feb 21, 2024 at 1:06 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
> > But I am wondering why this flag is always set to true in
> > DecodeTXNNeedSkip() irrespective of the commit or abort. Because the
> > aborted transactions are not supposed to be replayed?  So if my
> > observation is correct that for the aborted transaction, this
> > shouldn't be set to true then we have a problem with sequence where we
> > are identifying the transactional changes as non-transaction changes
> > because now for transactional changes this should depend upon commit
> > status.
>
> I have checked this case with Amit Kapila.  So it seems in the cases
> where we have sent the prepared transaction or streamed in-progress
> transaction we would need to send the abort also, and for that reason,
> we are setting 'ctx->processing_required' as true so that if these
> WALs are not streamed we do not allow upgrade of such slots.

I don't find this explanation clear enough for me to understand.

-- 
Robert Haas
EDB: http://www.enterprisedb.com