I plan to run a replicated Postgresql
over multiple sites. There should be two servers on every site. At the main site they should run in BDR
mode. And between the sites (to the other servers) I need something like UDR
.
I could use BDR
if it would not require full-mesh connections and would cascade the changes.
I was reading that BDR
and UDR
are not working well together.
link
Then I have seen pglogical
which looks like a UDR
replacement. pglogical docs
I am using BDR Version 0.9.3 (postgresql 9.4).
Can I mix BDR
with UDR
the way I want?
Can I mix BDR
and pglogical
to achieve what I want?
What might be critical or a pitfall?
Is there any way to do this with the currently available versions? What will be the needed version and the procedure to get this working?
Edit:
I was thinking about a UDR
direction from the BDR
servers to the other servers. But I could also imagine other peaople need it the other way around. Or some tables sync up only while others sync down only.
Edit2:
I tried to use BDR
with pglogical
.
- First I did the 2 node
BDR
setup. - Verified it is working.
- Then I did the
pglogical
setup just on oneBDR
node. - From this point on it stopped working (
BDR
&pglogical
).
Seams like pglogical
locks DDL
(or maybe everything).
I could not join a subscriber and I was not able to insert data on the other BDR
node (DDL
locked).
So at the moment it seams to be NOT possible to run BDR
and pglogical
on the same tables.
But there might be a workaround - or I may have done something wrong.