paxos協議

看了《從paxos到zookeeper》裏面paxos協議的講解,推導過程太複雜。記錄一下paxos協議的內容網絡

協議用於分佈式數據一致性,分爲三種角色,proposer、acceptor、learner。proposer向accepor集合提出議案[Mn, Vn], accepor批准議案,即肯定那個議案爲最終結果,learner主要同步結果, 相似master - slave中的slave分佈式

兩個階段:同步

階段一:ast

  1. proposer提出議案[Mn, Vn],發送給prepare大部分的accepor節點zookeeper

  2. acceptor節點收到prepare請求,承諾不批准比Mn更小的提案。若是批准其餘提案Vx,返回Vx循環

階段二:請求

  1. proposer收到大部分acceptor響應,發送accept請求。若是沒有Vx返回,發送[Mn, Vx]給acceptor。若是有Vx返回,發送[Mn, Vn]通信

  2. acceptor收到accept請求,批准提案[Mn, Vn]或者[Mn, Vx]數據

備註,爲了不死循環能夠使用主proposer給acceptor發送提案協議

learner同步提案

方式一:

  全部的acceptor m個給learner n個發送提案, 網絡通訊次數m * n

方式二:

  全部的acceptor給主learner發送提案, 主learn同步給其餘learner, m + n - 1(單點故障)

方式三:

  全部acceptor m給一個learner x集合同步提案, 集合learner在給剩餘learn同步 m * x + x * (n - x) = x * ( m + n - x)

相關文章
相關標籤/搜索