39
39
Some solutions deal with synchronization by allowing only one
40
40
server to modify the data. Servers that can modify data are
41
41
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>
43
43
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
45
45
standby</firstterm> server, and one that can accept connections and serves read-only
46
46
queries is called a <firstterm>hot standby</firstterm> server.
47
47
</para>
@@ -165,10 +165,10 @@ protocol to make nodes agree on a serializable transactional order.
165
165
Logical replication allows a database server to send a stream of data
166
166
modifications to another server. <productname>PostgreSQL</productname>
167
167
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
172
172
replication, see <xref linkend="logical-replication"/>. Through the
173
173
logical decoding interface (<xref linkend="logicaldecoding"/>),
174
174
third-party extensions can also provide similar functionality.
@@ -177,22 +177,24 @@ protocol to make nodes agree on a serializable transactional order.
177
177
</varlistentry>
178
178
179
179
<varlistentry>
180
- <term>Trigger-Based Master -Standby Replication</term>
180
+ <term>Trigger-Based Primary -Standby Replication</term>
181
181
<listitem>
182
182
183
183
<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.
189
191
</para>
190
192
191
193
<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.
196
198
</para>
197
199
</listitem>
198
200
</varlistentry>
@@ -215,14 +217,10 @@ protocol to make nodes agree on a serializable transactional order.
215
217
<function>random()</function>, <function>CURRENT_TIMESTAMP</function>, and
216
218
sequences can have different values on different servers.
217
219
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
219
221
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
226
224
transactions either commit or abort on all servers, perhaps
227
225
using two-phase commit (<xref linkend="sql-prepare-transaction"/>
228
226
and <xref linkend="sql-commit-prepared"/>).
@@ -351,7 +349,7 @@ protocol to make nodes agree on a serializable transactional order.
351
349
</row>
352
350
353
351
<row>
354
- <entry>Allows multiple master servers</entry>
352
+ <entry>Allows multiple primary servers</entry>
355
353
<entry align="center"></entry>
356
354
<entry align="center"></entry>
357
355
<entry align="center"></entry>
0 commit comments