On Mon, 31 Jul 2017, Merlin Moncure wrote:
On Sun, Jul 30, 2017 at 8:34 PM, Steve Singer <st...@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'
merlin
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>
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers