校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 开源框架 > paxos
题目

简述Paxos算法的两个阶段

解答

阶段1(prepare)
(1)Proposer收到client请求或者发现本地有未提交的值,选择一个提案编号N,然后向半数以上的Acceptor发送编号为N的Prepare请求
(2)Acceptor收到一个编号为N的Prepare请求,如果该轮paxos:
本节点已经有已提交的value记录,对比记录的编号和N,大于N则拒绝回应,否则返回该记录value及编号
没有已提交记录,判断本地是否有编号N1,N1>N,则拒绝响应,否则将N1改为N(如果没有N1,则记录N),并响应prepare

阶段2(accept)
(1)如果Proposer收到半数以上Acceptor对其发出的编号为N的Prepare请求的响应,那么它就会发送一个针对[N,V]提案的Accept请求给半数以上的Acceptor。V就是收到的响应中编号最大的value,如果响应中不包含任何value,那么V就由Proposer自己决定。
(2)如果Acceptor收到一个针对编号为N的提案的Accept请求,Acceptor对比本地的记录编号,如果小于等于N,则接受该值,并提交记录value。否则拒绝请求。

C 0条回复 评论

帖子还没人回复快来抢沙发