From: | Robert Haas <robertmhaas(at)gmail(dot)com> |
---|---|
To: | Simon Riggs <simon(at)2ndquadrant(dot)com> |
Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Design for In-Core Logical Replication |
Date: | 2016-07-29 15:53:30 |
Message-ID: | CA+TgmoY7NeH-erSjtL47N9DFbKxByj-OhXBbFQmVmCFZhqfOzg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wed, Jul 20, 2016 at 4:08 AM, Simon Riggs <simon(at)2ndquadrant(dot)com> wrote:
> In this post, Petr and I present a joint view on a design for how this
> should work in-core, based upon our implementation experiences with physical
> replication, pglogical and various comments so far.
>
> Note that this has substantial user-visible differences from pglogical,
> though much of the underlying architecture is reused.
>
> I should stress that not all of the aspects are implemented yet. The post
> here today is a combination of all of our attempts to bring architecture,
> usability and security into one place, including a coherent way of
> describing the features and how they work.
>
> Your comments and questions are sought now as we begin the main development
> effort to get this into PostgreSQL 10.0
Thanks for publishing this.
One minor comment is that this document makes extensive use of Terms
With Initial Capitals, which seems stylistically odd, although I'm not
precisely sure what would be better.
I would have expected that there would be a concept of a REPLICATION
SET, defining which tables are to be replicated; here, that seems to
be the Publication. That may fine, but I wonder if there is any value
in separating those things. It's clear, for example, that a
replication set can be dumped: which tables are members of which
replication sets is durable metadata. It's less clear that a
publication can be dumped; that might include things which are not
durable metadata, such as associations with slots.
It's generally not really clear to me based on reading this exactly
what information is encapsulated in a Publication or a Subscription,
which makes it hard to evaluate design decisions like this one:
> <para>
> The definition of a Publication object will be included within
> pg_dump by default when all of the objects in the Publication are
> requested as part of the dump specification.
> </para>
> <para>
> Subscriptions are not dumped by pg_dump by default, but can be
> requested using --subscriptions parameter.
> </para>
I think that to really understand exactly what you and Petr have in
mind, we'd need a description of where publication and subscription
data is stored within the server, and exactly what gets stored.
Perhaps that will come in a later email. I'm not bashing the design,
exactly, I just can't quite see how all of the pieces fit together
yet.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2016-07-29 15:58:04 | Re: Wrong defeinition of pq_putmessage_noblock since 9.5 |
Previous Message | Peter Eisentraut | 2016-07-29 15:27:06 | Re: sslmode=require fallback |