Data Partitioning documentation section reduced and moved to the end.
This commit is contained in:
parent
42cfdfb453
commit
cc9698254c
@ -1,4 +1,4 @@
|
|||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/failover.sgml,v 1.12 2006/11/17 09:00:03 neilc Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/failover.sgml,v 1.13 2006/11/17 13:29:53 momjian Exp $ -->
|
||||||
|
|
||||||
<chapter id="failover">
|
<chapter id="failover">
|
||||||
<title>Failover, Replication, Load Balancing, and Clustering Options</title>
|
<title>Failover, Replication, Load Balancing, and Clustering Options</title>
|
||||||
@ -137,52 +137,14 @@
|
|||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>Data Partitioning</term>
|
<term>Query Broadcasting</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Data partitioning splits tables into data sets. Each set can
|
In query broadcasting, a program intercepts every SQL query
|
||||||
be modified by only one server. For example, data can be
|
and sends it to all servers. Each server operates independently.
|
||||||
partitioned by offices, e.g. London and Paris. While London
|
Read-only queries can be sent to a single server because there
|
||||||
and Paris servers have all data records, only London can modify
|
is no need for all servers to process it.
|
||||||
London records, and Paris can only modify Paris records. This
|
|
||||||
is similar to the "Master/Slave Replication" item above, except
|
|
||||||
that instead of having a read/write server and a read-only
|
|
||||||
server, each server has a read/write data set and a read-only
|
|
||||||
data set.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Such partitioning provides both failover and load balancing. Failover
|
|
||||||
is achieved because the data resides on both servers, and this is an
|
|
||||||
ideal way to enable failover if the servers share a slow communication
|
|
||||||
channel. Load balancing is possible because read requests can go to any
|
|
||||||
of the servers, and write requests are split among the servers. Of
|
|
||||||
course, the communication to keep all the servers up-to-date adds
|
|
||||||
overhead, so ideally the write load should be low, or localized as in
|
|
||||||
the London/Paris example above.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Data partitioning is usually handled by application code, though rules
|
|
||||||
and triggers can be used to keep the read-only data sets current. Slony-I
|
|
||||||
can also be used in such a setup. While Slony-I replicates only entire
|
|
||||||
tables, London and Paris can be placed in separate tables, and
|
|
||||||
inheritance can be used to access both tables using a single table name.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>Multi-Master Replication Using Query Broadcasting</term>
|
|
||||||
<listitem>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
One way to do multi-master replication is by having a program
|
|
||||||
intercept every SQL query and send it to all servers. Each
|
|
||||||
server operates independently. Read-only queries can be sent
|
|
||||||
to a single server because there is no need for all servers to
|
|
||||||
process it.
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@ -235,6 +197,22 @@
|
|||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>Data Partitioning</term>
|
||||||
|
<listitem>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Data partitioning splits tables into data sets. Each set can
|
||||||
|
be modified by only one server. For example, data can be
|
||||||
|
partitioned by offices, e.g. London and Paris, with a server
|
||||||
|
in each office. If queries combining London and Paris data
|
||||||
|
are necessary, an application can query both servers, or
|
||||||
|
master/slave replication can be used to keep a read-only copy
|
||||||
|
of the other office's data on each server.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>Clustering For Parallel Query Execution</term>
|
<term>Clustering For Parallel Query Execution</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user