目录
前言
这个是在讨论了了Two Phase Commit(TPC)之后,Google的一个practice,应用了Paxos以及TPC来实现分布式事务,在一定程度上解决了TPC带来的速度问题
一、Spanner
1.1
系统overview
通过Paxos来管理replication,每个Shard一个paxos group,也就是说每个shard一个server,然后replicas是分布在不同的区域的
why通过paxos?
- sharding可以满足更大的throughput
- datacenters fail independently
- clients can read local replica - fast
- paxos 只需要majority - tolerate slow/distant replicas
1.2 Big challenges
- 想读local的数据,但是由于paxos(Raft)的关系,local数据不一定是最新的
- Transaction involves in multiple shards
解决这些挑战的时候导致了读写使用了不同的策略