PostgreSQL & BDR: Is BDR truly multi-master, is it Open Source and EOL for 1.x in 2019?

11.6k views Asked by At

I am confused regarding PostgreSQL BDR and I have several questions:

Question 1: Is BDR truly multi-master for PostgreSQL?

According to the docs here, it says that:

The BDR (Bi-Directional Replication) project adds multi-master replication to PostgreSQL 9.4

but if I read on 2ndQuadrant, I read the following:

enter image description here

If I read that part, they don't mention multi-master much at all; just that a "second master, working in passive", which indicates its not a real master?

Question 2: Is BDR open-source?

I read here that it is, at least that it was:

BDR is the first open source multi-master replication system for PostgreSQL

Is it still? Because when I look, I am often directed to 2ndQuadrants webpage, and that gives me the impression that its not open-source, when they say that:

How can you get Postgres-BDR?

Just fill out the contact form below and a PostgreSQL expert will be in touch shortly!

Sounds like selling to me =)

Question 3: What version is what?

I read that 2ndQuadrant released version 1.0.5 in March this year. I also read on 2ndQuadrants webpage that

In the complex environment of replication, the 3rd generation of BDR achieves...

The 3rd gen? Is version 1.0.5 that same 3rd gen, or is it something else?

Also, the same page says that:

Note for current Postgres-BDR users: BDR 1.x will reach EOL in December 2019. Our team of PostgreSQL experts can help plan and execute your upgrade with minimal impact and almost zero downtime. Contact us today and a member of our professional services team will be in touch with you as soon as possible.

So, 1.0.5 was released in March, but has EOL in December 2019? Is 2.x not open-source, so some license cost associated with it, and 1.x is EOL 2019?

3

There are 3 answers

6
Craig Ringer On BEST ANSWER

BDR1 is open source. BDR2 is not. BDR3 is not yet, but should become so at some later stage.

BDR is truly multi-master. The "AlwaysOn Architecture" is a simplified model for BDR deployments that uses active/standby with fast-failover, designed to retain better compatibility with existing applications while improving HA and robustness.

So BDR can and often is deployed in fully multi-master roles, the AlwaysOn architecture just doesn't use it that way.


The BDR 1.x series for PostgreSQL 9.4 (+BDR patches) is open source. It will go EoL in December 2019. It works fine, but I don't recommend it for new deployments given the planned EoL.

The BDR 2.x series (for PostgreSQL 9.6) is not open source and is only available for 2ndQuadrant customers. However, parts of it have been submitted to PostgreSQL itself. It has been superseded by BDR 3.x.

The BDR 3.x series, which is now entering production, is not currently open source and is available only to 2ndQuadrant customers. My understanding is that it's intended for eventual open source release, but no date has been set, and I cannot speak officially for 2ndQuadrant about this. BDR3 adds a much more robust node communication model, better conflict handling, and a lot more, plus it runs on PostgreSQL 10 and 11.

I have been encouraging the relevant people to provide some updated official guidance on these matters. The latest I have for you right now is "News and Roadmap for BDR (Multi-master PostgreSQL)" on the 2ndQuadrant blog.

1
alain On

also, "is only available to Support Customers", meaning it is not a product you can buy one time. You have to pay. Every year. It is a product you rent :( .

3
Ted On

I received an answer from 2ndQuadrant via email, so I will post it here as it addresses the questions above:

1- "BDR is truly master-master; the shadow master is still a master. BDR is an eventually consistent multi master solution; in eventually consistent multi master cluster, it is possible to write on more than one master at the same time, and conflicts might arise when the same rows are written at the same time. Conflicts might be acceptable or not depending on the logical model of the application. Some people do not need to write on both nodes at the same time, and will use BDR only to achieve faster failover, as in our BDR-AlwaysOn architecture. Other people need to write on both nodes, and in that case we need to assess impact and likeliness of conflicts."

2- BDR 1.x is open source (http://bdr-project.org/docs/stable/) . Later versions including BDR3 is only available to 2ndQuadrant Production Support customers. Happy to talk about that in more detail. You are right, it does sound like selling, we are a business :)

3- The latest version is BDR3, this is the third generation of BDR. It will still be live, but is only available to Support Customers.

1.x is open source, but EOL as you mentioned.