Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
P
postgres-lambda-diff
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Jakob Huber
postgres-lambda-diff
Commits
6346355a
Commit
6346355a
authored
18 years ago
by
Bruce Momjian
Browse files
Options
Downloads
Patches
Plain Diff
Wording and term clarification for HA docs, per Markus Schiltknecht.
parent
84151d06
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
doc/src/sgml/high-availability.sgml
+24
-22
24 additions, 22 deletions
doc/src/sgml/high-availability.sgml
with
24 additions
and
22 deletions
doc/src/sgml/high-availability.sgml
+
24
−
22
View file @
6346355a
<!-- $PostgreSQL: pgsql/doc/src/sgml/high-availability.sgml,v 1.1
1
2006/11/22
04:01:40
momjian Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/high-availability.sgml,v 1.1
2
2006/11/22
17:36:52
momjian Exp $ -->
<chapter id="high-availability">
<chapter id="high-availability">
<title>High Availability and Load Balancing</title>
<title>High Availability and Load Balancing</title>
...
@@ -49,13 +49,13 @@
...
@@ -49,13 +49,13 @@
meaning that a data-modifying transaction is not considered
meaning that a data-modifying transaction is not considered
committed until all servers have committed the transaction. This
committed until all servers have committed the transaction. This
guarantees that a failover will not lose any data and that all
guarantees that a failover will not lose any data and that all
load-balanced servers will return consistent results
with little
load-balanced servers will return consistent results
no matter
propagation delay
. Asynchronous updating has a delay between
the
which server is queried
. Asynchronous updating has a delay between
time of commit and its propagation to the other servers,
opening
the
time of commit and its propagation to the other servers,
the possibility that some transactions might be lost in
the switch
opening
the possibility that some transactions might be lost in
to a backup server, and that load balanced servers
might return
the switch
to a backup server, and that load balanced servers
slightly stale results. Asynchronous communication
is used when
might return
slightly stale results. Asynchronous communication
synchronous would be too slow.
is used when
synchronous would be too slow.
</para>
</para>
<para>
<para>
...
@@ -110,7 +110,7 @@ https://forge.continuent.org/pipermail/sequoia/2006-November/004070.html
...
@@ -110,7 +110,7 @@ https://forge.continuent.org/pipermail/sequoia/2006-November/004070.html
Oracle RAC is a shared disk approach and just send cache invalidations
Oracle RAC is a shared disk approach and just send cache invalidations
to other nodes but not actual data. As the disk is shared, data is
to other nodes but not actual data. As the disk is shared, data is
only commited once to disk and there is a distributed locking
only commit
t
ed once to disk and there is a distributed locking
protocol to make nodes agree on a serializable transactional order.
protocol to make nodes agree on a serializable transactional order.
-->
-->
...
@@ -178,29 +178,29 @@ protocol to make nodes agree on a serializable transactional order.
...
@@ -178,29 +178,29 @@ protocol to make nodes agree on a serializable transactional order.
using two-phase commit (<xref linkend="sql-prepare-transaction"
using two-phase commit (<xref linkend="sql-prepare-transaction"
endterm="sql-prepare-transaction-title"> and <xref
endterm="sql-prepare-transaction-title"> and <xref
linkend="sql-commit-prepared" endterm="sql-commit-prepared-title">.
linkend="sql-commit-prepared" endterm="sql-commit-prepared-title">.
Pgpool
is
an example of this type of replication.
Pgpool
and Sequoia are
an example of this type of replication.
</para>
</para>
</listitem>
</listitem>
</varlistentry>
</varlistentry>
<varlistentry>
<varlistentry>
<term>Synchonous Multi-Master Replication</term>
<term>Synch
r
onous Multi-Master Replication</term>
<listitem>
<listitem>
<para>
<para>
In synchonous multi-master replication, each server can accept
In synch
r
onous multi-master replication, each server can accept
write requests, and modified data is transmitted from the
write requests, and modified data is transmitted from the
original server to every other server before each transaction
original server to every other server before each transaction
commits. Heavy write activity can cause excessive locking,
commits. Heavy write activity can cause excessive locking,
leading to poor performance. In fact, write performance is
leading to poor performance. In fact, write performance is
often worse than that of a single server. Read requests can
often worse than that of a single server. Read requests can
be sent to any server. Some implementations use
cluster-wide
be sent to any server. Some implementations use
shared disk
shared memory or shared disk to reduce the communication
to reduce the communication overhead. Synchronous multi-master
overhead. Clustering
is best for mostly read workloads, though
replication
is best for mostly read workloads, though
its big
its big
advantage is that any server can accept write requests
advantage is that any server can accept write requests
—
—
there is no need to partition workloads between master
there is no need to partition workloads between master
and
and
slave servers, and because the data changes are sent from
slave servers, and because the data changes are sent from
one
one
server to another, there is no problem with non-deterministic
server to another, there is no problem with non-deterministic
functions like <function>random()</>.
functions like <function>random()</>.
</para>
</para>
...
@@ -222,9 +222,11 @@ protocol to make nodes agree on a serializable transactional order.
...
@@ -222,9 +222,11 @@ protocol to make nodes agree on a serializable transactional order.
<para>
<para>
For servers that are not regularly connected, like laptops or
For servers that are not regularly connected, like laptops or
remote servers, keeping data consistent among servers is a
remote servers, keeping data consistent among servers is a
challenge. One simple solution is to allow each server to
challenge. Using asynchronous multi-master replication, each
modify the data, and have periodic communication compare
server works independently, and periodically communicates with
databases and ask users to resolve any conflicts.
the other servers to identify conflicting transactions. The
conflicts can be resolved by users or conflict resolution rules.
rules.
</para>
</para>
</listitem>
</listitem>
</varlistentry>
</varlistentry>
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment