Re: Support logical replication of DDLs

From: Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>
To: Zheng Li <zhengli10(at)gmail(dot)com>
Cc: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Peter Smith <smithpb2250(at)gmail(dot)com>, Ajin Cherian <itsajin(at)gmail(dot)com>, vignesh C <vignesh21(at)gmail(dot)com>, li jie <ggysxcq(at)gmail(dot)com>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>, "houzj(dot)fnst(at)fujitsu(dot)com" <houzj(dot)fnst(at)fujitsu(dot)com>, Japin Li <japinli(at)hotmail(dot)com>, rajesh singarapu <rajesh(dot)rs0541(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Support logical replication of DDLs
Date: 2023-02-20 08:22:50
Message-ID: CAD21AoA1Rs6U8hLc6bpJkCwrYb9FF7ymaWQqdHidONbbGQmw5w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

On Fri, Feb 17, 2023 at 1:13 PM Zheng Li <zhengli10(at)gmail(dot)com> wrote:
>
> > > I've implemented a prototype to allow replicated objects to have the
> > > same owner from the publisher in
> > > v69-0008-Allow-replicated-objects-to-have-the-same-owner-from.patch.
> > >
> >
> > I also think it would be a helpful addition for users.A few points
> Thanks for supporting this addition.
>
> > that come to my mind are: (a) Shouldn't the role have the same
> > privileges (for ex. rolbypassrls or rolsuper) on both sides before we
> > allow this? (b) Isn't it better to first have a replication of roles?
>
> > I think if we have (b) then it would be probably a bit easier because
> > if the subscription has allowed replicating roles and we can confirm
> > that the role is replicated then we don't need to worry about the
> > differences.
>
> Yes, having role replication will help further reduce the manual
> effort. But even if we don't end up doing role replication soon, I
> think we can still provide this subscription option (match_ddl_owner,
> off by default) and document that the same roles need to be on both
> sides for it to work.

From the user perspective, I expect that the replicated objects are
created on the subscriber by the same owner as the publisher, by
default. I think that the same name users must exist on both sides (by
role replication or manually if not supported yet) but the privileges
of the role doesn't necessarily need to match. IOW, it's sufficient
that the role on the subscriber has enough privileges to create the
object.

>
> > Now, coming to implementation, won't it be better if we avoid sending
> > the owner to the subscriber unless it is changed for the replicated
> > command? Consider the current case of tables where we send schema only
> > if it is changed. This is not a direct mapping but it would be better
> > to avoid sending additional information and then process it on the
> > subscriber for each command.
>
> Right, we can do some optimization here: only send the owner for
> commands that create objects (CREATE TABLE/FUNCTION/INDEX etc.) Note
> that ALTER TABLE/OBJECT OWNER TO is replicated so we don't need to
> worry about owner change.

What role will be used for executing ALTER and DROP commands on the
subscriber? the subscription owner?

Regards,

--
Masahiko Sawada
Amazon Web Services: https://aws.amazon.com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message David Rowley 2023-02-20 09:09:26 Re: A performance issue in ROW_NUMBER() OVER(ORDER BY NULL) [27 times slow than OVER()] V14.5
Previous Message Mikhail Balayan 2023-02-20 05:29:16 Re: Automatic aggressive vacuum on almost frozen table takes too long

Browse pgsql-hackers by date

  From Date Subject
Next Message Bharath Rupireddy 2023-02-20 08:24:00 Re: Use pg_pwritev_with_retry() instead of write() in dir_open_for_write() to avoid partial writes?
Previous Message Ryo Matsumura (Fujitsu) 2023-02-20 08:22:02 RE: DDL result is lost by CREATE DATABASE with WAL_LOG strategy