Re: Built-in plugin for logical decoding output

From: Alvaro Hernandez <aht(at)ongres(dot)com>
To: Gregory Brail <gregbrail(at)google(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Built-in plugin for logical decoding output
Date: 2017-09-22 23:01:13
Message-ID: ad31ab08-ac2c-7f8f-637f-ec27ed0969fe@ongres.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 23/09/17 00:28, Gregory Brail wrote:
> We have been working on a project that makes extensive use of logical
> replication for use inside Apigee (which is a very small part of Google):
>
> https://github.com/apigee-labs/transicator
>
> In order to do this, we had to write our own logical replication
> plugin because the supplied "test_decoding" plugin from the "contrib"
> directory was hard for us to work with. Primarily:
>
> 1) It doesn't include all the fields that we need for Transicator
> (most importantly we need the LSN and the 64-bit transaction ID).
> 2) It outputs a text format that is hard to parse.
>
> I imagine that other users of logical decoding are facing similar
> problems.
>
> Would the community support the development of another plugin that is
> distributed as part of "contrib" that addresses these issues? I'd be
> happy to submit a patch, or GitHub repo, or whatever works best as an
> example. (Also, although Transicator uses protobuf, I'm happy to have
> it output a simple binary format as well.)
>
> As a side note, doing this would also help making logical decoding a
> useful feature for customers of Amazon and Google's built-in Postgres
> hosting options. In those environments, there's no way to add a custom
> plugin to Postgres, so anything not built in the product tends to be
> harder for someone to consume.
>
> If anyone is interested in looking more:
>
> The plugin code is here:
> https://github.com/apigee-labs/transicator/tree/master/pgoutput
>
> and produces output defined by the "ChangePb" structure defined here:
> https://github.com/apigee-labs/transicator/blob/master/common/transicator.proto

    How about using pgoutput, which is included by default in
PostgreSQL 10, as the basis for logical replication?

    Cheers,

    Álvaro

--

Alvaro Hernandez

-----------
OnGres

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Gregory Brail 2017-09-23 00:11:47 Re: Built-in plugin for logical decoding output
Previous Message Gregory Brail 2017-09-22 22:28:56 Built-in plugin for logical decoding output