-
+
High Availability and Load Balancing
- Some failover and load balancing solutions are synchronous, meaning that
- a data-modifying transaction is not considered committed until all
- servers have committed the transaction. This guarantees that a failover
- will not lose any data and that all load-balanced servers will return
- consistent results with no propagation delay. Asynchronous updating has
- a small delay between the time of commit and its propagation to the
- other servers, opening the possibility that some transactions might be
- lost in the switch to a backup server, and that load balanced servers
- might return slightly stale results. Asynchronous communication is used
- when synchronous would be too slow.
+ Some failover and load balancing solutions are synchronous,
+ meaning that a data-modifying transaction is not considered
+ committed until all servers have committed the transaction. This
+ guarantees that a failover will not lose any data and that all
+ load-balanced servers will return consistent results with little
+ propagation delay. Asynchronous updating has a delay between the
+ time of commit and its propagation to the other servers, opening
+ the possibility that some transactions might be lost in the switch
+ to a backup server, and that load balanced servers might return
+ slightly stale results. Asynchronous communication is used when
+ synchronous would be too slow.
current, but the mirroring must be done in a way that the
standby server has a consistent copy of the file system.
+
+
+
- Multi-Master Replication Using Clustering
+ Multi-Master Clustering
- Clustering is implemented by
Oracle> in their
-
RAC>> product. PostgreSQL>
- does not offer this type of load balancing, though
-
PostgreSQL> two-phase commit (
- linkend="sql-prepare-transaction"
+
PostgreSQL> does not offer this type of load
+ balancing, though
PostgreSQL> two-phase commit
+ (
endterm="sql-prepare-transaction-title"> and
linkend="sql-commit-prepared" endterm="sql-commit-prepared-title">)
can be used to implement this in application code or middleware.
+
+ Multi-Master With Conflict Resolution
+
+
+ For servers that are not regularly connected, like laptops or
+ remote servers, keeping data consistent among servers is a
+ challenge. One simple solution is to allow each server to
+ modify the data, and have periodic communication compare
+ databases and ask users to resolve any conflicts.
+
+
+
+
Data Partitioning