Performance Analysis of the Raft ConsensusAlgorithm for Private Blockchains区块链提升效率Raft算法分析

  • 网络模型
    • 前提:
      • 假设交流延迟远小于heartbeat间隔,一个heartbeat是马尔可夫链中的一步
      • p:丢包可能性,假设对于一个给定的网络是连续值
      • Et:每轮的选举timeout值,在给定的范围[a,b]中选
      • τ:两个heartbeat间隔
      • 采用离散和整数时间尺度
      • 如果follower没能成功接受K= [Et/τ ]次heartbeat,假设当前没有有效leader然后转变为candidate状态开始选举。
        K值从集合里选取,K ∈ {K1,K2,...,Kr},K1 = [a/τ ],Kr = [b/τ ]
      • g(n):在时间n时给定节点的阶段位置
      • b(n):节点在时间n时选举计时器的剩余值
      • 马尔可夫短链:P{i, ki − 1|i, ki} = P{g(n +1) = i, b(n + 1) = ki − 1|g(n) = i, b(n) = ki}
    • 唯一的非零一步转变概率


      (1)followers没接受当前领导者然后选举计时器按1减少
      (2)followers收到一个heartbeat然后重置选举计时器
      (3)选举计时器为0,follower转变为candidate
      • 当此状态下选举timeout值唯一,r=1,t=K
        • 则特殊情况下三个式子可以表示为:k ∈ {1,...,K}。P为(K+1,K+1)矩阵
    • {i,0}是absorbing状态,i = 1, 2,...,r,,有r个absorbing状态。其他状态时暂时状态,有t个暂时状态。

    • 状态转换矩阵


      Q是t×t矩阵(qij是从si状态转换到sj状态可能性),R是t×r非零矩阵(rmn是暂时态sm转换成absorbing态sn的可能性),I是r×r单位矩阵
  • 网络分裂可能性:当N个节点中超过一半成为候选节点时,leader将不合格,从而导致网络分裂
    • 情况1:N个节点网络,转换矩阵如(8),在第n步之前分裂可能性

      • 是Pn矩阵第(1,K+1)个元素;Yn为所有节点从初始状态开始,在第n步之前过渡到n状态的节点数
      • 证明:P{Yn = m}是第n步之前m个节点成为候选节点的概率
        • P{Yn ≥ [(N/2)]+1}情况下
      • 性质1:
      • 性质2:当N趋于∞,p(n)(k+1)趋近于0,第n步之前网络分裂可能性
    • 平均应答次数
      • 第n步预计参与者:

      • 第n步追随者:

      • 第n步中,leader收集到的平均回复数为

    • 追随者的预期收到的heartbeats的数量
      • 定理2:follower从初始状态开始,在转移到候选状态之前预期接收到的心跳数为n11(n11是矩阵的第一项 )

        • 证明:根据马尔可夫链得
          • 既然
          • Q特征值的绝对值小于1,I-Q可逆,由N = (I − Q)^-1进行归纳
          • 当n趋于无穷时,Q^n趋于0,因此当n趋于无穷时
          • 因此,
          • 设X^(k)=1当且仅当链在k步后处于sj状态,否则为0。k=0时成立:
          • 假设从si状态开始前n步中链处于sj状态的期望次数
          • 当n趋于无穷时比较(34)和(30)得证
    • 转变成候选者的时间
      • 定理3:假设follower从初始状态开始,该follower过渡到候选状态的预期时间为,n是N的元素

    • 选举新领导者时间:
      • Te=Et × Ne,Et是从范围[a, b]中统一选择的超时值,Ne是检测失败的leader并重新选出一个新的leader所需的选举次数
      • 第一个候选人在一轮选举中获胜的概率

      • Ne期望值

      • Te期望值(Etmax是超时最大值)

  • 仿真实验:丢包率、选举超时时间和网络大小对可用性和网络分裂概率的影响
    • 验证模型有效性:结果和离散事件模拟器对概率进行验证(图形说明有效性)
      • 第一步:对于每个follower i,根据给定的丢包率确定follower是否收到心跳。 如果follower接收到心跳,则重置选举时间计数器。 反之则其选举时间计数器减少1。 如果选举时间计数器为0,则表示关注者i为候选人,并从关注者列表中删除关注者i。
      • 第二步:把候选人的数目加起来。 如果候选节点的数量大于节点总数的一半,则记录时间t为网络分割时间。 否则,更新t = t + τ,回到步骤1
    • 比较不同规模下的网络分裂概率、时间,——网络规模越大,网络分割时间的稳定性越好
    • 比较不同丢包率下网络分割时间的期望和方差,——增加选举超时时间有助于降低丢包导致的网络分裂概率,特别是在丢包率较低的情况下
    • 比较follower接收心跳的时间间隔——丢包率对接收端心跳间隔有显著影响 ,选举超时时间作用不明显
    • 比较不同p值下Ne的表现——大网络Ne平均小于小网络,丢包率p很小时较大网络选举不太像小网络那样依赖于p
  • 联系现实:提到丢包概率可能导致节点崩溃(没有细化展开或者说明崩溃情况),提出系统效率评价指标
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值