|
1 | 1 | #`PostgreSQL multimaster`
|
2 | 2 |
|
3 |
| -`multimaster` is a PostgreSQL extension with a set of patches that turns PostgreSQL into a synchronous shared-nothing cluster to provide Online Transaction Processing (OLTP) scalability and high availability with automatic disaster recovery. |
4 |
| - |
5 |
| - |
6 |
| -##Features |
| 3 | +`multimaster` is a PostgreSQL extension with a set of patches that turns PostgreSQL into a synchronous shared-nothing cluster to provide Online Transaction Processing (OLTP) scalability and high availability with automatic disaster recovery. As compared to a standard PostgreSQL master-slave cluster, a cluster configured with the`multimaster` extension offers the following benefits: |
7 | 4 |
|
8 | 5 | * Cluster-wide transaction isolation
|
9 |
| -* Synchronous logical replication |
10 |
| -* DDLReplication |
11 |
| -*Fault tolerance |
12 |
| -*Automatic node recovery |
13 |
| - |
| 6 | +* Synchronous logical replication |
| 7 | +* DDLreplication |
| 8 | +*Working with temporary tables on each cluster node |
| 9 | +*Fault tolerance and automatic node recovery |
| 10 | +* PostgreSQL online upgrades |
14 | 11 |
|
15 | 12 | ##Overview
|
16 | 13 |
|
@@ -49,7 +46,10 @@ For details on the `multimaster` internals, see the [Architecture](/contrib/mmts
|
49 | 46 |
|
50 | 47 | *`multimaster` can only replicate one database per cluster.
|
51 | 48 |
|
52 |
| -* The replicated tables must have primary keys. Otherwise,`multimaster` cannot perform logical replication. |
| 49 | +* The replicated tables must have primary keys or replica identity. Otherwise,`multimaster` cannot perform logical replication. Unlogged tables are not replicated, as in the standard PostgreSQL. |
| 50 | + |
| 51 | +* Sequence generation. |
| 52 | +To avoid conflicts between unique identifiers on different nodes,`multimaster` modifies the default behavior of sequence generators. For each node, ID generation is started with the node number and is incremented by the number of nodes in each iteration. For example, in a three-node cluster, 1, 4, and 7 IDs are allocated to the objects written onto the first node, while 2, 5, and 8 IDs are reserved for the second node. |
53 | 53 |
|
54 | 54 | * DDL replication.
|
55 | 55 | While`multimaster` replicates data on the logical level, DDL is replicated on the statement level, which causes distributed commits of the same statement on different nodes. As a result, complex DDL scenarios, such as stored procedures and temporary tables, may work differently as compared to the standard PostgreSQL.
|
|