Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 08267a6

Browse files
committed
readme edits postgres#24
1 parent 7450f9b commit 08267a6

File tree

1 file changed

+33
-40
lines changed

1 file changed

+33
-40
lines changed

README.md

Lines changed: 33 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,17 @@ disaster recovery.
66

77

88

9+
## Features
10+
11+
* Cluster-wide transaction isolation
12+
* Synchronous logical replication
13+
* DDL Replication
14+
* Distributed sequences
15+
* Fault tolerance
16+
* Automatic node recovery
17+
18+
19+
920
## Overview
1021

1122
Multi-master replicates same database to all nodes in cluster and allows writes to each node. Transaction
@@ -16,13 +27,6 @@ commit latency for amount of time proportional to roundtrip between nodes nedded
1627
transactions and queries executed locally without measurable overhead. Replication mechanism itself based on
1728
logical decoding and earlier version of pglogical extension provided for community by 2ndQuadrant team.
1829

19-
Several changes was made in postgres core to implement mentioned functionality:
20-
* Transaction manager API. (eXtensible Transaction Manager, xtm). Generic interface to plug distributed
21-
transaction engines. More info on [postgres wiki](https://wiki.postgresql.org/wiki/DTM) and
22-
on [the email thread](http://www.postgresql.org/message-id/flat/F2766B97-555D-424F-B29F-E0CA0F6D1D74@postgrespro.ru).
23-
* Distributed deadlock detection API.
24-
* Logical decoding of transactions.
25-
2630
Cluster consisting of N nodes can continue to work while majority of initial nodes are alive and reachable by
2731
other nodes. This is done by using 3 phase commit protocol and heartbeats for failure discovery. Node that is
2832
brought back to cluster can be fast-forwaded to actual state automatically in case when transactions log still
@@ -32,38 +36,6 @@ Read more about internals on [Architechture](/Architechture) page.
3236

3337

3438

35-
## Features
36-
37-
* Cluster-wide transaction isolation
38-
* Synchronous logical replication
39-
* DDL Replication
40-
* Distributed sequences
41-
* Fault tolerance
42-
* Automatic node recovery
43-
44-
45-
46-
## Limitations
47-
48-
* Commit latency.
49-
Current implementation of logical replication sends data to subscriber nodes only after local commit, so in case of
50-
heavy-write transaction user will wait for transaction processing two times: on local node and al other nodes
51-
(simultaneosly). We have plans to address this issue in future.
52-
53-
* DDL replication.
54-
While data is replicated on logical level, DDL replicated by statements performing distributed commit with the same
55-
statement. Some complex DDL scenarious including stored procedures and temp temp tables aren't working properly. We
56-
are working right now on proving full compatibility with ordinary postgres. Currently we are passing 141 of 164
57-
postgres regression tests.
58-
59-
* Isolation level.
60-
Multimaster currently support only _repeatable_ _read_ isolation level. This is stricter than default _read_commited_,
61-
but also increases probability of serialization failure during commit. _Serializable_ level isn't supported yet.
62-
63-
* One database per cluster.
64-
65-
66-
6739
## Installation
6840

6941
(Existing db?)
@@ -149,7 +121,7 @@ After things go more stable we will release prebuilt packages for major platform
149121
multimaster.heartbeat_send_timeout = 250
150122
multimaster.ignore_tables_without_pk = true
151123
multimaster.twopc_min_timeout = 2000
152-
```
124+
```
153125
1. Allow replication in `pg_hba.conf`.
154126

155127
(link to full doc on config params)
@@ -188,6 +160,27 @@ To run tests:
188160
* `make -C contrib/mmts xcheck` to run blockade tests. The blockade tests require `docker`, `blockade`, and some other packages installed, see [requirements.txt](tests2/requirements.txt) for the list. You might also want to gain superuser privileges to run these tests successfully.
189161

190162

163+
## Limitations
164+
165+
* Commit latency.
166+
Current implementation of logical replication sends data to subscriber nodes only after local commit, so in case of
167+
heavy-write transaction user will wait for transaction processing two times: on local node and al other nodes
168+
(simultaneosly). We have plans to address this issue in future.
169+
170+
* DDL replication.
171+
While data is replicated on logical level, DDL replicated by statements performing distributed commit with the same
172+
statement. Some complex DDL scenarious including stored procedures and temp temp tables aren't working properly. We
173+
are working right now on proving full compatibility with ordinary postgres. Currently we are passing 141 of 164
174+
postgres regression tests.
175+
176+
* Isolation level.
177+
Multimaster currently support only _repeatable_ _read_ isolation level. This is stricter than default _read_ _commited_,
178+
but also increases probability of serialization failure during commit. _Serializable_ level isn't supported yet.
179+
180+
* One database per cluster.
181+
182+
183+
191184
docs:
192185

193186
## Architechture

0 commit comments

Comments
 (0)