Re: Minimal logical decoding on standbys

Bertrand Drouvot <bertranddrouvot.pg@gmail.com>

From: "Drouvot, Bertrand" <bertranddrouvot.pg@gmail.com>
To: Robert Haas <robertmhaas@gmail.com>, Jeff Davis <pgsql@j-davis.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>, Andres Freund <andres@anarazel.de>, Thomas Munro <thomas.munro@gmail.com>, Alvaro Herrera <alvherre@2ndquadrant.com>, Ibrar Ahmed <ibrar.ahmad@gmail.com>, Amit Khandekar <amitdkhan.pg@gmail.com>, fabriziomello@gmail.com, tushar <tushar.ahuja@enterprisedb.com>, Rahila Syed <rahila.syed@2ndquadrant.com>, pgsql-hackers <pgsql-hackers@postgresql.org>, Melanie Plageman <melanieplageman@gmail.com>
Date: 2023-04-05T15:57:31Z
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. Reduce the log level in 035_standby_logical_decoding.pl.

  2. 035_standby_logical_decoding: Add missing waits for replication

  3. For cascading replication, wake physical and logical walsenders separately

  4. Handle logical slot conflicts on standby

  5. Support invalidating replication slots due to horizon and wal_level

  6. Prevent use of invalidated logical slot in CreateDecodingContext()

  7. Replace replication slot's invalidated_at LSN with an enum

  8. Pass down table relation into more index relation functions

  9. Assert only valid flag bits are passed to visibilitymap_set()

  10. Remove unused _bt_delitems_delete() argument.

  11. Add xl_btree_delete optimization.

Hi,

On 4/5/23 4:24 PM, Robert Haas wrote:
> On Tue, Apr 4, 2023 at 8:33 PM Jeff Davis <pgsql@j-davis.com> wrote:
>> For comments, I agree that WalSndWakeup() clearly needs a comment
>> update. The call site in ApplyWalRecord() could also use a comment. You
>> could add a comment at every call site, but I don't think that's
>> necessary if there's a good comment over WalSndWakeup().
> 
> Right, we don't want to go overboard, but I think putting some of the
> text you wrote above for the commit message, or something with a
> similar theme, in the comment for WalSndWakeup() would be quite
> helpful. We want people to understand why the physical and logical
> cases are different.

Gave it a try in V61 posted up-thread.

> I agree with you that ApplyWalRecord() is the other place where we
> need a good comment. I think the one in v60 needs more word-smithing.
> It should probably be a bit more detailed and clear about not only
> what we're doing but why we're doing it.

Gave it a try in V61 posted up-thread.

> 
> Now that I understand what's going on here a bit better, I'm inclined
> to think that this patch is basically fine. At least, I don't see any
> obvious problem with it.

Thanks for the review and feedback!

Regards,

-- 
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com