Distributed Systems

Why disribute systems?

  • provides reliability, your data is located in multiple places
  • offers scalability, both write and query

为什么要做分布式?

  • 我们可以避免把所有鸡蛋放在一个篮子里面(可靠性)
  • 降低系统负载(扩展性)

What is the problem?

分布式数据一致性 (Distributed Consensus)

分布式系统必将存在多个数据节点,真实世界的网络情况是复杂多变的,如果节点与节点之前出现不能通信的情况,数据的一直性就很难得到保证,这对业务来说也是绝对不能接受的。

What is the solution?

Paxos

– Famously difficult-to-understand

ZAB (ZooKeeper Atomic Broadcast)

– Created by Yahoo! Research

Raft

– Diego Ongaro and John Ousterhout at Stanford

About raft: Secret Lives of Data (http://thesecretlivesofdata.com/raft/)

About the LodaStack

lodastack是我们正在开发的项目,通过raft维护了哪些数据的一致性:

  • db所有数据变更(写,删除)
  • cache清理,cache在每个节点上是独立的,只有在清理的时候才通过集群统一清理
  • 集群meta信息,除了数据我们还维护了一个meta信息,方便后期扩展,目前只是存了HTTP API和raft的对应关系。

References: