10 beta docs: different replication solutions
We don't seem to describe logical replication on
https://www.postgresql.org/docs/10/static/different-replication-solutions.html
The attached patch adds a section.
Steve
Attachments:
comparision-logical.difftext/x-diff; name=comparision-logical.diffDownload
diff --git a/doc/src/sgml/high-availability.sgml b/doc/src/sgml/high-availability.sgml
index 138bdf2..1329d1f 100644
--- a/doc/src/sgml/high-availability.sgml
+++ b/doc/src/sgml/high-availability.sgml
@@ -158,6 +158,26 @@ protocol to make nodes agree on a serializable transactional order.
</listitem>
</varlistentry>
+
+ <varlistentry>
+ <term>Logical Replication</term>
+ <listitem>
+
+ <para>
+ Logical replication allows a database server to send a stream of
+ data modifications to another server.
+ <productname>PostgreSQL</productname> logical replication constructs
+ a stream of logical data modifications from the WAL.
+ </para>
+ <para>
+ Logical replication allows the data changes from individual tables
+ to be replicated. Logical replication doesn't require a particular server
+ to be designated as a master or a slave but allows data to flow in multiple
+ directions. For more information on logical replication, see <xref linkend="logical-replication">.
+ </para>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
<term>Trigger-Based Master-Standby Replication</term>
<listitem>
@@ -290,6 +310,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry>Shared Disk Failover</entry>
<entry>File System Replication</entry>
<entry>Write-Ahead Log Shipping</entry>
+ <entry>Logical Replication</entry>
<entry>Trigger-Based Master-Standby Replication</entry>
<entry>Statement-Based Replication Middleware</entry>
<entry>Asynchronous Multimaster Replication</entry>
@@ -304,6 +325,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry align="center">NAS</entry>
<entry align="center">DRBD</entry>
<entry align="center">Streaming Repl.</entry>
+ <entry align="center">Logical Repl.</entry>
<entry align="center">Slony</entry>
<entry align="center">pgpool-II</entry>
<entry align="center">Bucardo</entry>
@@ -315,6 +337,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry align="center">shared disk</entry>
<entry align="center">disk blocks</entry>
<entry align="center">WAL</entry>
+ <entry align="center">Logical decoding</entry>
<entry align="center">table rows</entry>
<entry align="center">SQL</entry>
<entry align="center">table rows</entry>
@@ -330,6 +353,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry align="center">•</entry>
<entry align="center">•</entry>
<entry align="center">•</entry>
+ <entry align="center">•</entry>
</row>
<row>
@@ -337,6 +361,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry align="center"></entry>
<entry align="center"></entry>
<entry align="center"></entry>
+ <entry align="center">•</entry>
<entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center">•</entry>
@@ -349,6 +374,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center"></entry>
+ <entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center"></entry>
<entry align="center"></entry>
@@ -360,6 +386,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry align="center"></entry>
<entry align="center">with sync off</entry>
<entry align="center">•</entry>
+ <entry align="center">•</entry>
<entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center"></entry>
@@ -371,6 +398,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry align="center">•</entry>
<entry align="center">with sync on</entry>
<entry align="center"></entry>
+ <entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center"></entry>
<entry align="center">•</entry>
@@ -385,6 +413,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry align="center">•</entry>
<entry align="center">•</entry>
<entry align="center">•</entry>
+ <entry align="center">•</entry>
</row>
<row>
@@ -393,6 +422,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry align="center"></entry>
<entry align="center"></entry>
<entry align="center">•</entry>
+ <entry align="center">•</entry>
<entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center">•</entry>
@@ -403,6 +433,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry align="center">•</entry>
<entry align="center">•</entry>
<entry align="center">•</entry>
+ <entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center"></entry>
<entry align="center"></entry>
On Sun, Jul 30, 2017 at 8:34 PM, Steve Singer <steve@ssinger.info> wrote:
We don't seem to describe logical replication on
https://www.postgresql.org/docs/10/static/different-replication-solutions.html
The attached patch adds a section.
This is a good catch. Two quick observations:
1) Super pedantic point. I don't like the 'repl.' abbreviation in the
'most common implementation' both for the existing hs/sr and for the
newly added logical.
2) This lingo:
+ Logical replication allows the data changes from individual tables
+ to be replicated. Logical replication doesn't require a particular server
+ to be designated as a master or a slave but allows data to flow
in multiple
+ directions. For more information on logical replication, see
<xref linkend="logical-replication">.
Is good, but I would revise it just a bit to emphasize the
subscription nature of logical replication to link the concepts
expressed strongly in the main section. For example:
Logical replication allows the data changes [remove: "from individual
tables to be replicated"] to be published to subscriber nodes. Data
can flow in any direction between nodes on a per-table basis; there is
no concept of a master server. Conflict resolution must be handled
completely by the application. For more information on...
what do you think?
merlin
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On Mon, 31 Jul 2017, Merlin Moncure wrote:
On Sun, Jul 30, 2017 at 8:34 PM, Steve Singer <steve@ssinger.info> wrote:
We don't seem to describe logical replication on
https://www.postgresql.org/docs/10/static/different-replication-solutions.html
The attached patch adds a section.
This is a good catch. Two quick observations:
1) Super pedantic point. I don't like the 'repl.' abbreviation in the
'most common implementation' both for the existing hs/sr and for the
newly added logical.
Updated
2) This lingo: + Logical replication allows the data changes from individual tables + to be replicated. Logical replication doesn't require a particular server + to be designated as a master or a slave but allows data to flow in multiple + directions. For more information on logical replication, see <xref linkend="logical-replication">.Is good, but I would revise it just a bit to emphasize the
subscription nature of logical replication to link the concepts
expressed strongly in the main section. For example:Logical replication allows the data changes [remove: "from individual
tables to be replicated"] to be published to subscriber nodes. Data
can flow in any direction between nodes on a per-table basis; there is
no concept of a master server. Conflict resolution must be handled
completely by the application. For more information on...what do you think?
Sounds good.
I've incorporated these changes into an updated patch but I changed the
language around conflict resolution. Conflict resolution could be handled
by triggers or adding extra columns to the primary key, that wouldn't be
'completely by the application'
Show quoted text
merlin
Attachments:
comparision-logical.difftext/x-diff; name=comparision-logical.diffDownload
diff --git a/doc/src/sgml/high-availability.sgml b/doc/src/sgml/high-availability.sgml
index 138bdf2..19b26f8 100644
--- a/doc/src/sgml/high-availability.sgml
+++ b/doc/src/sgml/high-availability.sgml
@@ -158,6 +158,27 @@ protocol to make nodes agree on a serializable transactional order.
</listitem>
</varlistentry>
+
+ <varlistentry>
+ <term>Logical Replication</term>
+ <listitem>
+
+ <para>
+ Logical replication allows a database server to send a stream of
+ data modifications to another server.
+ <productname>PostgreSQL</productname> logical replication constructs
+ a stream of logical data modifications from the WAL.
+ </para>
+ <para>
+ Logical replication allows the data changes to be published to subscriber
+ nodes. Data can flow in any direction between nodes on a per-table basis;
+ there is no concept of a master server. <productname>PostgreSQL</productname>
+ does not include support for conflict resolution.
+ For more information on logical replication, see <xref linkend="logical-replication">.
+ </para>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
<term>Trigger-Based Master-Standby Replication</term>
<listitem>
@@ -290,6 +311,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry>Shared Disk Failover</entry>
<entry>File System Replication</entry>
<entry>Write-Ahead Log Shipping</entry>
+ <entry>Logical Replication</entry>
<entry>Trigger-Based Master-Standby Replication</entry>
<entry>Statement-Based Replication Middleware</entry>
<entry>Asynchronous Multimaster Replication</entry>
@@ -303,7 +325,8 @@ protocol to make nodes agree on a serializable transactional order.
<entry>Most Common Implementation</entry>
<entry align="center">NAS</entry>
<entry align="center">DRBD</entry>
- <entry align="center">Streaming Repl.</entry>
+ <entry align="center">Streaming Replication.</entry>
+ <entry align="center">Logical Replication.</entry>
<entry align="center">Slony</entry>
<entry align="center">pgpool-II</entry>
<entry align="center">Bucardo</entry>
@@ -315,6 +338,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry align="center">shared disk</entry>
<entry align="center">disk blocks</entry>
<entry align="center">WAL</entry>
+ <entry align="center">Logical decoding</entry>
<entry align="center">table rows</entry>
<entry align="center">SQL</entry>
<entry align="center">table rows</entry>
@@ -330,6 +354,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry align="center">•</entry>
<entry align="center">•</entry>
<entry align="center">•</entry>
+ <entry align="center">•</entry>
</row>
<row>
@@ -337,6 +362,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry align="center"></entry>
<entry align="center"></entry>
<entry align="center"></entry>
+ <entry align="center">•</entry>
<entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center">•</entry>
@@ -349,6 +375,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center"></entry>
+ <entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center"></entry>
<entry align="center"></entry>
@@ -360,6 +387,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry align="center"></entry>
<entry align="center">with sync off</entry>
<entry align="center">•</entry>
+ <entry align="center">•</entry>
<entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center"></entry>
@@ -371,6 +399,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry align="center">•</entry>
<entry align="center">with sync on</entry>
<entry align="center"></entry>
+ <entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center"></entry>
<entry align="center">•</entry>
@@ -385,6 +414,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry align="center">•</entry>
<entry align="center">•</entry>
<entry align="center">•</entry>
+ <entry align="center">•</entry>
</row>
<row>
@@ -393,6 +423,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry align="center"></entry>
<entry align="center"></entry>
<entry align="center">•</entry>
+ <entry align="center">•</entry>
<entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center">•</entry>
@@ -403,6 +434,7 @@ protocol to make nodes agree on a serializable transactional order.
<entry align="center">•</entry>
<entry align="center">•</entry>
<entry align="center">•</entry>
+ <entry align="center"></entry>
<entry align="center">•</entry>
<entry align="center"></entry>
<entry align="center"></entry>
On 7/30/17 21:34, Steve Singer wrote:
We don't seem to describe logical replication on
https://www.postgresql.org/docs/10/static/different-replication-solutions.html
The attached patch adds a section.
Committed with some further tweaking, thanks!
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers