一。概念
zab:zookeeper automic broadcast
zab不同于paxos,但我相信(目前没真正去看细节)大体算法是一致的,所以目的是一样的:
提供高可用性的协调器功能,当然 这不能缺少以分布式提交方式(可分为two-phase commit,2pc;three-phase commit 3pc) 为基础的事务提交。
二。paxos
由于paxos是基础,就先来了解它。
//TODO
references:
http://rdc.taobao.com/team/jm/archives/397
http://rdc.taobao.com/blog/cs/?p=160
http://www.cnblogs.com/ychellboy/archive/2009/12/29/1634685.html
http://en.wikipedia.org/wiki/Paxos_algorithm,很完整的介绍
http://zh.wikipedia.org/wiki/Paxos%E7%AE%97%E6%B3%95 翻译了部分
http://www.worldlingo.com/ma/enwiki/zh_cn/Paxos_algorithm 中文翻译版本,好像是机器翻译的,-_-
http://www.flatws.cn/article/program/algorithm/2011-04-16/20949.html
http://www.vpsee.com/2009/09/paxos-algorithm/
三。zab
其中它是在acm上的一遍论文的实现:
<<a simple totally ordered broadcase protocol>>
//TODO
references:
http://wiki.apache.org/hadoop/ZooKeeper/PaxosRun