Skip to content

Commit 8550cbd

Browse files
committed
doc: Improve some documentation about HA and replication
This clarifies some wording in the description of the options available as replication solutions. While on it, this replaces some instances of "master" with "primary", for consistency with recent changes like 9e101cf. Author: Robert Treat Reviewed-by: Magnus Hagander, Michael Paquier Discussion: https://postgr.es/m/CAJSLCQ2TPaK_K8raofCamrqELCxY-H6mJrpDNRzc-LKpPY7c+g@mail.gmail.com
1 parent 8d9a935 commit 8550cbd

File tree

1 file changed

+22
-24
lines changed

1 file changed

+22
-24
lines changed

doc/src/sgml/high-availability.sgml

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@
3939
Some solutions deal with synchronization by allowing only one
4040
server to modify the data. Servers that can modify data are
4141
called read/write, <firstterm>master</firstterm> or <firstterm>primary</firstterm> servers.
42-
Servers that track changes in the master are called <firstterm>standby</firstterm>
42+
Servers that track changes in the primary are called <firstterm>standby</firstterm>
4343
or <firstterm>secondary</firstterm> servers. A standby server that cannot be connected
44-
to until it is promoted to a master server is called a <firstterm>warm
44+
to until it is promoted to a primary server is called a <firstterm>warm
4545
standby</firstterm> server, and one that can accept connections and serves read-only
4646
queries is called a <firstterm>hot standby</firstterm> server.
4747
</para>
@@ -165,10 +165,10 @@ protocol to make nodes agree on a serializable transactional order.
165165
Logical replication allows a database server to send a stream of data
166166
modifications to another server. <productname>PostgreSQL</productname>
167167
logical replication constructs a stream of logical data modifications
168-
from the WAL. Logical replication allows the data changes from
169-
individual tables to be replicated. Logical replication doesn't require
170-
a particular server to be designated as a primary or a replica but allows
171-
data to flow in multiple directions. For more information on logical
168+
from the WAL. Logical replication allows replication of data changes on
169+
a per-table basis. In addition, a server that is publishing its own
170+
changes can also subscribe to changes from another server, allowing data
171+
to flow in multiple directions. For more information on logical
172172
replication, see <xref linkend="logical-replication"/>. Through the
173173
logical decoding interface (<xref linkend="logicaldecoding"/>),
174174
third-party extensions can also provide similar functionality.
@@ -177,22 +177,24 @@ protocol to make nodes agree on a serializable transactional order.
177177
</varlistentry>
178178

179179
<varlistentry>
180-
<term>Trigger-Based Master-Standby Replication</term>
180+
<term>Trigger-Based Primary-Standby Replication</term>
181181
<listitem>
182182

183183
<para>
184-
A master-standby replication setup sends all data modification
185-
queries to the master server. The master server asynchronously
186-
sends data changes to the standby server. The standby can answer
187-
read-only queries while the master server is running. The
188-
standby server is ideal for data warehouse queries.
184+
A trigger-based replication setup typically funnels data modification
185+
queries to a designated primary server. Operating on a per-table basis,
186+
the primary server sends data changes (typically) asynchronously to the
187+
standby servers. Standby servers can answer queries while the primary is
188+
running, and may allow some local data changes or write activity. This
189+
form of replication is often used for offloading large analytical or data
190+
warehouse queries.
189191
</para>
190192

191193
<para>
192-
<productname>Slony-I</productname> is an example of this type of replication, with per-table
193-
granularity, and support for multiple standby servers. Because it
194-
updates the standby server asynchronously (in batches), there is
195-
possible data loss during fail over.
194+
<productname>Slony-I</productname> is an example of this type of
195+
replication, with per-table granularity, and support for multiple standby
196+
servers. Because it updates the standby server asynchronously (in
197+
batches), there is possible data loss during fail over.
196198
</para>
197199
</listitem>
198200
</varlistentry>
@@ -215,14 +217,10 @@ protocol to make nodes agree on a serializable transactional order.
215217
<function>random()</function>, <function>CURRENT_TIMESTAMP</function>, and
216218
sequences can have different values on different servers.
217219
This is because each server operates independently, and because
218-
SQL queries are broadcast (and not actual modified rows). If
220+
SQL queries are broadcast rather than actual data changes. If
219221
this is unacceptable, either the middleware or the application
220-
must query such values from a single server and then use those
221-
values in write queries. Another option is to use this replication
222-
option with a traditional primary-standby setup, i.e., data modification
223-
queries are sent only to the primary and are propagated to the
224-
standby servers via primary-standby replication, not by the replication
225-
middleware. Care must also be taken that all
222+
must determine such values from a single source and then use those
223+
values in write queries. Care must also be taken that all
226224
transactions either commit or abort on all servers, perhaps
227225
using two-phase commit (<xref linkend="sql-prepare-transaction"/>
228226
and <xref linkend="sql-commit-prepared"/>).
@@ -351,7 +349,7 @@ protocol to make nodes agree on a serializable transactional order.
351349
</row>
352350

353351
<row>
354-
<entry>Allows multiple master servers</entry>
352+
<entry>Allows multiple primary servers</entry>
355353
<entry align="center"></entry>
356354
<entry align="center"></entry>
357355
<entry align="center"></entry>

0 commit comments

Comments
 (0)