- 网络模型
- 前提:
- 假设交流延迟远小于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)矩阵
- 当此状态下选举timeout值唯一,r=1,t=K
- {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)得证
- 证明:根据马尔可夫链得
- 定理2:follower从初始状态开始,在转移到候选状态之前预期接收到的心跳数为n11(n11是矩阵的第一项 )
- 转变成候选者的时间
- 定理3:假设follower从初始状态开始,该follower过渡到候选状态的预期时间为,n是N的元素
- 选举新领导者时间:
- Te=Et × Ne,Et是从范围[a, b]中统一选择的超时值,Ne是检测失败的leader并重新选出一个新的leader所需的选举次数
- 第一个候选人在一轮选举中获胜的概率
- Ne期望值
- Te期望值(Etmax是超时最大值)
- 情况1:N个节点网络,转换矩阵如(8),在第n步之前分裂可能性
- 仿真实验:丢包率、选举超时时间和网络大小对可用性和网络分裂概率的影响
- 验证模型有效性:结果和离散事件模拟器对概率进行验证(图形说明有效性)
- 第一步:对于每个follower i,根据给定的丢包率确定follower是否收到心跳。 如果follower接收到心跳,则重置选举时间计数器。 反之则其选举时间计数器减少1。 如果选举时间计数器为0,则表示关注者i为候选人,并从关注者列表中删除关注者i。
- 第二步:把候选人的数目加起来。 如果候选节点的数量大于节点总数的一半,则记录时间t为网络分割时间。 否则,更新t = t + τ,回到步骤1
- 比较不同规模下的网络分裂概率、时间,——网络规模越大,网络分割时间的稳定性越好
- 比较不同丢包率下网络分割时间的期望和方差,——增加选举超时时间有助于降低丢包导致的网络分裂概率,特别是在丢包率较低的情况下
- 比较follower接收心跳的时间间隔——丢包率对接收端心跳间隔有显著影响 ,选举超时时间作用不明显
- 比较不同p值下Ne的表现——大网络Ne平均小于小网络,丢包率p很小时较大网络选举不太像小网络那样依赖于p
- 验证模型有效性:结果和离散事件模拟器对概率进行验证(图形说明有效性)
- 联系现实:提到丢包概率可能导致节点崩溃(没有细化展开或者说明崩溃情况),提出系统效率评价指标
Performance Analysis of the Raft ConsensusAlgorithm for Private Blockchains区块链提升效率Raft算法分析
于 2022-08-04 13:26:13 首次发布