Re: Support logical replication of global object commands - Mailing list pgsql-hackers

From Zheng Li
Subject Re: Support logical replication of global object commands
Date
Msg-id CAAD30UK+E8Jh0KAS3C67Cegom5GMowX1WQ4nZHVLL_MaA5Y1hA@mail.gmail.com
Whole thread Raw
In response to Re: Support logical replication of global object commands  (Masahiko Sawada <sawada.mshk@gmail.com>)
List pgsql-hackers
> I think that there are some (possibly) tricky challenges that haven't
> been discussed yet to support replicating global objects.
>
> First, as for publications having global objects (roles, databases,
> and tablespaces), but storing them in database specific tables like
> pg_publication doesn't make sense, because it should be at some shared
> place where all databases can have access to it. Maybe we need to have
> a shared catalog like pg_shpublication or pg_publication_role to store
> publications related to global objects or the relationship between
> such publications and global objects. Second, we might need to change
> the logical decoding infrastructure so that it's aware of shared
> catalog changes.

Thanks for the feedback. This is insightful.

> Currently we need to scan only db-specific catalogs.
> Finally, since we process CREATE DATABASE in a different way than
> other DDLs (by cloning another database such as template1), simply
> replicating the CREATE DATABASE statement would not produce the same
> results as the publisher. Also, since event triggers are not fired on
> DDLs for global objects, always WAL-logging such DDL statements like
> the proposed patch does is not a good idea.

> Given that there seems to be some tricky problems and there is a
> discussion for cutting the scope to make the initial patch small[1], I
> think it's better to do this work after the first version.

Agreed.

Regards,
Zane



pgsql-hackers by date:

Previous
From: Dave Cramer
Date:
Subject: Re: Request for comment on setting binary format output per session
Next
From: Stephen Frost
Date:
Subject: Re: Kerberos delegation support in libpq and postgres_fdw