从paxous到zookeeper

来源:互联网 发布:信鸽分类信息软件 编辑:程序博客网 时间:2024/05/30 05:13

一, 2pc 两阶段提交.

1,事物询问,执行事物,将操作记录undo 和 redo.

2,各个 参与者都需要像协调者汇报情况,是否OK,如果不OK,那就中断.

3,执行事物提交.像所有参与者发出commit.

4,参与者执行之后回复ACK,完成事物.

5,中断事物,任何参与者像协调者反馈NO之后或者等待超时之后,协调者就会发送RollBack 请求 .

参与者在完成回滚之后会发送ACK,

优点,简单,实现难度低.

缺点,同步阻塞,单点问题,数据不一致,太过于保守.

二,3pc 三阶段提交

1,canCommit ,PreCommit,doCommit

2,询问各个参与者,是否可以顺利执行事物.然后进行与提交,记录redo 和undo ,返回结果给协调者.进行提交请求,

3,任何参与者返回NO或者超时,都会触发中断.但是这个协议是,如果没有收到doCommit也会继续提交事物,在doCommit 的时候如果超时将会继续提交.

白话:1,能不能干->预提交记录日志->提交事务.提交事物阶段如果没有收到协调者的明确反馈,就会继续提交事物.

三,paxos算法

1,proposer选取一个提案编号为m0,像Accepter 的某个超过半数的子集的成员发出请求.

2,如果Accepter收到任何一个提案,他不会通过任何编号比他批准过的编号小的提案.如果刚反回过,这返回之前返回的value

3,Proposer 生成一个提案,m0,max(value1,value2...valuen)如果没有值,则随机生成.

4,只要Accepter 没有批准过大于m0的提案,Accepter就必须批准这个提案.

5,将批准的提案通知learner.

四,zab算法描述

1,发现,同步,广播三个步骤.

2,http://www.cnblogs.com/softlin/p/4810759.html

0 0
原创粉丝点击