Hi,
I recall it was not possible in the past to perform bidirectional (master-master) rolling replication, and it was warned against in the documentation (saying from memory, could also have been the list).
I believe there were some parameters like sync_machineid to make things unique per server. This is quite some time ago, maybe when replication was just introduced :-)
Is that still the case, or is it now safe to do master-master replication? In a small test, it seems to work, without causing some kind of replication storm from one server to the other. Perhaps I have
to worry about full synchronisation runs, I didn’t stress test it or test every scenario.
I tried on Debian 10 with Cyrus from backports, so version 3.2.5. I did stumble upon some issues, for instance I had to install run a sync_server service, I was unable to get it to talk to the imap port
even though authentication succeeds (tcpdump shows sync_client stops immediately after). Also, sync_client bails out of rolling replication and doesn’t try to reconnect/restart if the peer disconnects, and I’d kind of expect it to resume after a hickup.
I would want to run a geographically separated cluster, and ‘automatic' failover (by having DNS records point to one or the other host based on monitoring, or using a load-balancer).
Regards, Paul
|