Re: Logical replication support for generic wal record

From: Natarajan R <nataraj3098(at)gmail(dot)com>
To: Bharath Rupireddy <bharath(dot)rupireddyforpostgres(at)gmail(dot)com>
Cc: Jeff Davis <pgsql(at)j-davis(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Logical replication support for generic wal record
Date: 2022-08-24 13:00:29
Message-ID: CAPqxBt5VGKdv81yGxN7TRV-iYv2Zt2sGF60-di7A7W-q0vef8Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Thanks, I'll check it out.

On Wed, 24 Aug 2022 at 18:00, Bharath Rupireddy <
bharath(dot)rupireddyforpostgres(at)gmail(dot)com> wrote:

> On Wed, Aug 24, 2022 at 5:12 PM Natarajan R <nataraj3098(at)gmail(dot)com> wrote:
> >
> >
> > On Mon, 22 Aug 2022 at 12:16, Bharath Rupireddy <
> bharath(dot)rupireddyforpostgres(at)gmail(dot)com> wrote:
> >>
> >> On Mon, Aug 22, 2022 at 11:59 AM Natarajan R <nataraj3098(at)gmail(dot)com>
> wrote:
> >> >
> >> > Hi All,
> >> >
> >> > I am writing a postgres extension which writes only generic wal
> record, but this wal is not recognized by logical replication decoder. I
> have a basic understanding of how logical replication(COPY command for
> initial sync, wal replica for final sync) works, can you please tell us a
> way to support this?
> >>
> >> "Generic" resource manager doesn't have a decoding API, see [1], which
> >> means that the generic WAL records will not get decoded.
> >>
> >> Can you be more specific about the use-case? Why use only "Generic"
> >> type WAL records? Why not use "LogicalMessage" type WAL records if you
> >> want your WAL records to be decoded?
> >>
> > I am writing an extension which implements postgres table access method
> interface[1] with master-slave architecture, with the help of doc[1] i
> decided to go with generic_wal to achieve crash_safety and also for
> streaming replication. It seems like generic_wal couldn't help with logical
> replication..
> > But, I don't have knowledge on "LogicalMessage" Resource Manager, need
> to explore about it.
> >
> >
> > [1] https://www.postgresql.org/docs/current/tableam.html
>
> I think the 'Custom WAL Resource Managers' feature would serve the
> exact same purpose (as also pointed out by Amit upthread), you may
> want to explore that feature [1]. Here's a sample extension using that
> feature [2], for a different purpose though, but helps to understand
> the usage of custom WAL rmgrs.
>
> I notice that the docs [3] don't mention the feature in the right
> place, IMO, it can be improved to refer to custom-rmgr.sgml page,
> cc-ing Jeff Davis for his thoughts. This would help developers quickly
> try the feature out and saves time.
>
> [1]
> https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=5c279a6d350205cc98f91fb8e1d3e4442a6b25d1
> [2] https://github.com/BRupireddy/pg_synthesize_wal
> [2] https://www.postgresql.org/docs/devel/tableam.html
> "For crash safety, an AM can use postgres' WAL, or a custom
> implementation. If WAL is chosen, either Generic WAL Records can be
> used, or a new type of WAL records can be implemented. Generic WAL
> Records are easy, but imply higher WAL volume. Implementation of a new
> type of WAL record currently requires modifications to core code
> (specifically, src/include/access/rmgrlist.h)."
>
> --
> Bharath Rupireddy
> RDS Open Source Databases: https://aws.amazon.com/rds/postgresql/
>

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Dave Page 2022-08-24 13:01:15 Re: Tracking last scan time
Previous Message mahendrakar s 2022-08-24 12:59:02 Re: Stack overflow issue