You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
-
26
30
Cluster consisting of N nodes can continue to work while majority of initial nodes are alive and reachable by
27
31
other nodes. This is done by using 3 phase commit protocol and heartbeats for failure discovery. Node that is
28
32
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.
32
36
33
37
34
38
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
-
67
39
## Installation
68
40
69
41
(Existing db?)
@@ -149,7 +121,7 @@ After things go more stable we will release prebuilt packages for major platform
149
121
multimaster.heartbeat_send_timeout = 250
150
122
multimaster.ignore_tables_without_pk = true
151
123
multimaster.twopc_min_timeout = 2000
152
-
```
124
+
```
153
125
1. Allow replication in `pg_hba.conf`.
154
126
155
127
(link to full doc on config params)
@@ -188,6 +160,27 @@ To run tests:
188
160
*`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.
189
161
190
162
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.
0 commit comments