@@ -6,37 +6,38 @@ An implementation of synchronous multi-master replication based on **logical dec
6
6
7
7
1 . Install ` contrib/raftable ` and ` contrib/mmts ` on each instance.
8
8
1 . Add these required options to the ` postgresql.conf ` of each instance in the cluster.
9
- ``` sh
10
- max_prepared_transactions = 200 # should be > 0, because all
11
- # transactions are implicitly two-phase
12
- max_connections = 200
13
- max_worker_processes = 100 # at least (2 * n + p + 1)
14
- # this figure is calculated as:
15
- # 1 raftable worker
16
- # n-1 receiver
17
- # n-1 sender
18
- # 1 mtm-sender
19
- # 1 mtm-receiver
20
- # p workers in the pool
21
- max_parallel_degree = 0
22
- wal_level = logical # multimaster is build on top of
23
- # logical replication and will not work otherwise
24
- max_wal_senders = 10 # at least the number of nodes
25
- wal_sender_timeout = 0
26
- default_transaction_isolation = ' repeatable read'
27
- max_replication_slots = 10 # at least the number of nodes
28
- shared_preload_libraries = ' raftable,multimaster'
29
- multimaster.workers = 10
30
- multimaster.queue_size = 10485760 # 10mb
31
- multimaster.node_id = 1 # the 1-based index of the node in the cluster
32
- multimaster.conn_strings = ' dbname=... host=....0.0.1 port=... raftport=..., ...'
33
- # comma-separated list of connection strings
34
- multimaster.use_raftable = true
35
- multimaster.heartbeat_recv_timeout = 1000
36
- multimaster.heartbeat_send_timeout = 250
37
- multimaster.ignore_tables_without_pk = true
38
- multimaster.twopc_min_timeout = 2000
39
- ```
9
+
10
+ ``` sh
11
+ max_prepared_transactions = 200 # should be > 0, because all
12
+ # transactions are implicitly two-phase
13
+ max_connections = 200
14
+ max_worker_processes = 100 # at least (2 * n + p + 1)
15
+ # this figure is calculated as:
16
+ # 1 raftable worker
17
+ # n-1 receiver
18
+ # n-1 sender
19
+ # 1 mtm-sender
20
+ # 1 mtm-receiver
21
+ # p workers in the pool
22
+ max_parallel_degree = 0
23
+ wal_level = logical # multimaster is build on top of
24
+ # logical replication and will not work otherwise
25
+ max_wal_senders = 10 # at least the number of nodes
26
+ wal_sender_timeout = 0
27
+ default_transaction_isolation = ' repeatable read'
28
+ max_replication_slots = 10 # at least the number of nodes
29
+ shared_preload_libraries = ' raftable,multimaster'
30
+ multimaster.workers = 10
31
+ multimaster.queue_size = 10485760 # 10mb
32
+ multimaster.node_id = 1 # the 1-based index of the node in the cluster
33
+ multimaster.conn_strings = ' dbname=... host=....0.0.1 port=... raftport=..., ...'
34
+ # comma-separated list of connection strings
35
+ multimaster.use_raftable = true
36
+ multimaster.heartbeat_recv_timeout = 1000
37
+ multimaster.heartbeat_send_timeout = 250
38
+ multimaster.ignore_tables_without_pk = true
39
+ multimaster.twopc_min_timeout = 2000
40
+ ```
40
41
1 . Allow replication in ` pg_hba.conf ` .
41
42
42
43
## Status functions
0 commit comments