Holy crap, I am scared! Please, please, please read the fine print and ensure you understand the design tradeoffs as well as your application's requirements before blindly using this. The moment I heard multi-master I thought Paxos, Raft or maybe virtual synchrony. Hmm, nothing in the documentation. Maybe a new consensus protocol was written from scratch then? That should be interesting! No, none of that either - thi…
"Everything after "Basically" is misleading and inaccurate. The conclusions here are not logical: The existence of some restrictions does not imply "Transactions are a lie", since that makes us think ALL transaction semantics are suspended, which is very far from the case. There are good reasons for the design and restrictions in the BDR design, offering performance about x100 what is possible with eager consensus. R…
But you have a point. Not all semantics are suspended, only atomicity, isolation and consistency.
Durability has become probabilistic, because merge conflicts with a concurrent mutation from another host can discard our change.
>offering performance about x100 what is possible with eager consensus
And what's the performance gain over regular asynchronous master-slave replication? All nodes have to process all mutations at some point, no?
>but this is multi-master - why would you read two nodes when all the data is on one node?
The "why" is because my use-case requires consistent reads and the business risk of inconsistent reads is unacceptable.
I am guessing you are working on the project? It scares me that you are asking this question.
It remains to be seen how many people are happy with such trade-off. I claim total ignorance here - it could be millions :)