Transactions Across Datacenters
(and other weekend projects)




Ryan Barrett
May 27, 2009





Of three properties of distributed data systems - consistency, availability, partition tolerance - choose two.

Eric Brewer, CAP theorem, PODC 2000







Scaling is hard.

Various

Context

What's ahead and takeaways

Consistency

Weak consistency

Eventual consistency

Strong consistency

What's ahead

Why transactions?

Why transactions?

What's ahead

Why across datacenters?

Why not across datacenters?

What's ahead

Multihoming

Option 1: Don't

Option 2: Primary with hot failover(s)

Option 3: True multihoming

What's ahead

Techniques and tradeoffs


Backups M/S MM 2PC Paxos
Consistency  
Transactions  
Latency  
Throughput  
Data loss  
Failover  

Backups

Backups


Backups M/S MM 2PC Paxos
Consistency Weak
Transactions No
Latency Low
Throughput High
Data loss Lots
Failover Down

Master/slave replication

Master/slave replication


Backups M/S MM 2PC Paxos
Consistency Weak Eventual
Transactions No Full
Latency Low
Throughput High
Data loss Lots Some
Failover Down Read only

Multi-master replication

Multi-master replication


Backups M/S MM 2PC Paxos
Consistency Weak Eventual
Transactions No Full Local
Latency Low
Throughput High
Data loss Lots Some
Failover Down Read only Read/write

Two Phase Commit

Two Phase Commit


Backups M/S MM 2PC Paxos
Consistency Weak Eventual Strong
Transactions No Full Local Full
Latency Low High
Throughput High Low
Data loss Lots Some None
Failover Down Read only Read/write

Paxos

Paxos for the Datastore

Paxos for App Engine

Paxos


Backups M/S MM 2PC Paxos
Consistency Weak Eventual Strong
Transactions No Full Local Full
Latency Low High
Throughput High Low Medium
Data loss Lots Some None
Failover Down Read only Read/write

Conclusions

What's behind (phew!)

Questions?