This is a 2016 paper by Robert Escriva and Robbert van Renesse. As far as I can see the paper did not get published in a conference or journal, but it is available on arxiv. The code (C++) is also available as opensource.
Consus introduces a leaderless-consensus-based commit protocol that completes in three one way message delays in the wide area. If your data centers were equidistant from each other with a uniform round trip time of 100ms between any pair of data centers, that means Consus could commit each transaction with 150ms of wide area latency.
In this setup, each data center has a full replica of the data and a transaction processing engine. The transaction processor executes the transaction against the local data center, and through the Consus-commit protocol it achieves serializable transaction execution. (The fully replicated requirement can be relaxed, I think, if the voting is on the outcome of partial transactions in each datacenter.)
Commit protocol
The commit protocol is based upon generalized consensus. Consus defers all inter-data center communication to the commit protocol, which both globally replicate transactions and decide their outcomes.
The commit protocol has 3 phases.
- In the first phase, a single datacenter (the one that the client contacts, presumably because it is the closest one) executes the transaction; if the transaction executes to completion, it is sent to other data centers alongside sufficient information to determine that these data centers’ executions match the execution in the original data center.
- In the second phase, each datacenter broadcasts the result of its own execution–whether it was able to reproduce the original execution– to all other data centers.
- In the final phase, the datacenters feed these results to an instance of Generalized Paxos that allows all data centers to learn the transaction’s outcome.
The below figure illustrates how leaderless/generalized Paxos works, compared to a leader-based classical Paxos. Generalized Paxos has a fast path where acceptors can accept proposals without communicating with other acceptors