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">&bull;</entry>
      <entry align="center">&bull;</entry>
      <entry align="center">&bull;</entry>
+     <entry align="center">&bull;</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">&bull;</entry>
      <entry align="center"></entry>
      <entry align="center">&bull;</entry>
      <entry align="center">&bull;</entry>
@@ -349,6 +375,7 @@ protocol to make nodes agree on a serializable transactional order.
      <entry align="center"></entry>
      <entry align="center">&bull;</entry>
      <entry align="center"></entry>
+     <entry align="center"></entry>
      <entry align="center">&bull;</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">&bull;</entry>
+     <entry align="center">&bull;</entry>
      <entry align="center"></entry>
      <entry align="center">&bull;</entry>
      <entry align="center"></entry>
@@ -371,6 +399,7 @@ protocol to make nodes agree on a serializable transactional order.
      <entry align="center">&bull;</entry>
      <entry align="center">with sync on</entry>
      <entry align="center"></entry>
+     <entry align="center"></entry>
      <entry align="center">&bull;</entry>
      <entry align="center"></entry>
      <entry align="center">&bull;</entry>
@@ -385,6 +414,7 @@ protocol to make nodes agree on a serializable transactional order.
      <entry align="center">&bull;</entry>
      <entry align="center">&bull;</entry>
      <entry align="center">&bull;</entry>
+     <entry align="center">&bull;</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">&bull;</entry>
+     <entry align="center">&bull;</entry>
      <entry align="center"></entry>
      <entry align="center">&bull;</entry>
      <entry align="center">&bull;</entry>
@@ -403,6 +434,7 @@ protocol to make nodes agree on a serializable transactional order.
      <entry align="center">&bull;</entry>
      <entry align="center">&bull;</entry>
      <entry align="center">&bull;</entry>
+     <entry align="center"></entry>
      <entry align="center">&bull;</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

Reply via email to