在众多的分布式一致性算法中,经常需要通过节点的数量满足某种规则来保证算法的正确性,比如Paxos算法,依赖一个”多数派“ 节点的工作的正确性。这类算法的共同目标是容许尽量多的节点失败但又不影响算法的正确性”。

这类问题本质上都抽象为数学上集合之间的逻辑关系,下面我们便从集合的性质入手讨论,为此先引入两个问题:

假设N为一非空结合,n为集合的元素数,M1,M2,...,Mm为N的m个子集,其元素数分别为n1,n2,...,nm,则:

  • 求得M1∩M2∩...∩Mn≠Φ的条件
  • 求得M1∩M2∩...∩Mn交集的最小个数

1. 两个元素

为此,我们先从M的两个子集A、B(元素数分别为a、b)开始,假如A、B有交集则必须a+b>n,若a+b=n,则恰好将N划分为两个完全划分(不相交的子集),因此大于N一定能保证相交。此时:a+b-n即为交集的最小个数,原因是不妨设(a-i)+b=n,为N的两个完全划分,则为i即为A与B重合的元素,i=a+b-n。

2. 三个元素

三个集合有交集的条件是什么?假如I=A∩B,则第三个集合只要与I有交集即可,这就把三个集合的问题转化为2个集合,因为两个集合的最小交集为a+b-n,因此,C的元素个数c必须满足c+(a+b-n)>n即a+b+c>2n才能保证有交集。同理,a+b+c-2n为交集最小个数

3.归纳证明

通过:

  • 两个集合的交集条件:a+b>n
  • 两个集合的交集个数:a+b-n
  • 三个集合的交集条件:a+b+c>2n
  • 三个集合的交集个数:a+b+c-2n

推测:

  • m个集合的交集条件:n1+n2+...+nm>(m-1)*n
  • m个集合的交集和数:n1+n2+...+nm-(m-1)*n

不妨令t个集合时上述条件成立:

  • t个集合的交集条件:n1+n2+...+nt>(t-1)*n
  • t个集合的交集和数:n1+n2+...+nt-(t-1)*n

则对t+1个集合必有:

  • t+1个集合的交集条件:n1+n2+...+nt+nt+1>t*n
  • t+1个集合的交集和数:n1+n2+...+nt+nt+1-t*n

当t+1个集合与前面t个集合有交集时,必有

n1+n2+...+nt-t*n+nt+1-n>n,整理即得所证结论。特别当m个集合元素数相同时,比如都为a,则相交条件为:ma>(m-1)n=>a>(1-1/m)n,只要m稍微大点,a与n会非常接近。

4. Paxos算法中的Quorum

在Paxos算法中能保证算法正确运行的节点数为Quorum,Qc、Qf 分别为Classic Paxos与Fast Paxos的Quorum

在classic paxos算法中,只要两个子集有交集即可,也即m=2,则a>n/2  <=> |Qc| ≥[n/2]+1

在Fast Paxos算法中,引入了三个集合:

  • 一个classic round的Quorum Qc
  • 两个fast round的Quorum Qf1,Qf2

要求:

  • Qc∩Qc≠Φ ---------(a)
  • Qc∩Qf∩Qf≠Φ----(b)

即三个集合有交集。但在Fast Paxos中描述问题的形式稍微有点改变:

F是Classic Round允许的最大失败数,E是Fast Round允许的最大失败数,E<=F,上面等价于:

  • (a),即m=2,N-F =>N-F>N/2 =>N>2F
  • (b),即m=3,N-F+N-E+N-E>2N =>N>2E+F>3E

如果E取上限E=F,则N>3F<=>F<N/3 <=> F≤⌈N/3⌉ -1,因此:(Qc、Qf 分别为Classic Round与Fast Round的Quorum)

|Qc| = |Qf | ≥ N − ⌈N/3⌉ + 1 ≥ ⌊2N/3⌋ + 1-----------(1)

如果F取得上限N>2F <=> F≤⌈N/2⌉ -1,根据N>2E+F <=> N >2E+⌈N/2⌉ -1 <=> 2E ≤N-⌈N/2⌉ <=> E≤⌈N/4⌉,因此:

|Qc| ≥N-⌈N/2⌉+1 = ⌈N/2⌉+1

|Qf |≥N-⌈N/4⌉≥⌈3N/4⌉-----------(2)

上述(1)、(2)都为可行性结果,统称为保证一致性算法的节点下限。但在实际中因为(1)保证|Qc| = |Qf |,编程更简单、清晰,使用的会更多一些。

根据这个结论,会得出Classic Paxos与Fast Paxos所需的最小节点数:

  • Classic Paxos:N>2F≥2F+1≥3
  • Fast Paxos:N>2E+F≥3E+1≥4
即在允许一个节点失败的情况下,Classic Paxos至少需要3个节点,而Fast Paxos则需要4个。

很明显,通过集合工具能极大地简化一致性算法的共性问题的研究。

转自:http://blog.csdn.net/chen77716/article/details/7295728

5. 参考资料

  • On the Coordinator’s Rule for Fast Paxos
  • Fast Paxos

转载于:https://www.cnblogs.com/javaleon/p/3945871.html

一致性算法中的节点下限(转)相关推荐

  1. 可达性分析算法中根节点有哪些

    1.虚拟机栈中局部变量表的对象 2.方法区中的静态属性 3.方法区中的静态对象 4.native方法引用的对象

  2. 一致性算法 - Raft

    一致性算法 - Raft Raft 状态 一个 Raft 集群包含若干个服务器节点:通常是 5 个,这允许整个系统容忍 2 个节点的失效,每个节点处于以下三种状态之一: follower(跟随者) : ...

  3. 【转】分布式一致性算法:Raft 算法(Raft 论文翻译)

    编者按:这篇文章来自简书的一个位博主Jeffbond,读了好几遍,翻译的质量比较高,原文链接:分布式一致性算法:Raft 算法(Raft 论文翻译),版权一切归原译者. 同时,第6部分的集群成员变更读 ...

  4. RAFT 寻找一种易于理解的一致性算法(扩展版)

    摘要 Raft 是一种为了管理复制日志的一致性算法.它提供了和 Paxos 算法相同的功能和性能,但是它的算法结构和 Paxos 不同,使得 Raft 算法更加容易理解并且更容易构建实际的系统.为了提 ...

  5. Raft 一致性算法论文译文

    本篇博客为著名的 RAFT 一致性算法论文的中文翻译,论文名为<In search of an Understandable Consensus Algorithm (Extended Vers ...

  6. 分布式一致性算法:Raft 算法

    由于微信字数的限制,此处给出的并非全文,请拉到页面最下方点击阅读原文查看完整版. Raft 算法是可以用来替代 Paxos 算法的分布式一致性算法,而且 raft 算法比 Paxos 算法更易懂且更容 ...

  7. 分布式一致性算法——Paxos 和 Raft 算法

    写在前面 本文隶属于专栏<100个问题搞定大数据理论体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见100个问题搞定大数据理 ...

  8. 分布式技术与实战第一课 分布式理论与一致性算法

    开篇词:搭建分布式知识体系,挑战高薪 Offer 你好,我是邴越,在一线互联网公司从事分布式开发工作多年,一直关注分布式理论和新技术的发展. 互联网发展到今天,用户数量越来越多,产生的数据规模也越来越 ...

  9. Raft 一致性算法论文

    本篇博客为著名的 RAFT 一致性算法论文的中文翻译,论文名为<In search of an Understandable Consensus Algorithm (Extended Vers ...

  10. Raft一致性算法论文

    本篇博客为著名的 RAFT 一致性算法论文的中文翻译,论文名为<In search of an Understandable Consensus Algorithm (Extended Vers ...

最新文章

  1. wpf listview mysql_Kivy:使用MySQL的Kivy页面的Listview实现
  2. (转)zookeeper理解
  3. Yii2几个要注意的小地方
  4. 【ArcGIS风暴】ArcGIS矢量数据分层设色后导出或裁剪后颜色分类丢失完美解决办法
  5. 鼠标按下改变RelativeLayout背景颜色,松开变回
  6. UVA725 UVALive5362 Division【暴力+进制】
  7. 软工导论测试代码(归档):设备管理系统
  8. linux下的PDF阅读器
  9. oracle jde优势介绍,Oracle_JDE_EnterpriseOne模块的详细功能介绍
  10. Arduino资源下载
  11. mysql写保护,sd卡有写保护怎么格式化
  12. 在SpringBoot中实现通用Auth认证,有哪几种方式?
  13. Xilinx HLS 导出IP失败的最新解决方案(2022.1.15)
  14. 《AngularJS深度剖析与最佳实践》一2.13 端到端测试
  15. string.Format()之格式化数值类型数据
  16. android ps2 模拟器,手机目前安卓系统PS2模拟器最好用的是一款叫做呆萌PS2模拟器的APP!这一款竟然是国产的!...
  17. css3切角文本框_html – 用边框制作切角
  18. video标签挡住了下拉框
  19. springcloud和分布式微服务学习笔记
  20. P6项目管理流程概述

热门文章

  1. Inpaint for Mac(图片去水印软件)
  2. Slideshow Maker for mac(幻灯片制作软件)
  3. 矢量绘图工具:Sketch 78 for mac
  4. 如何使用ImageRanger Pro Edition mac版创建缩略图?
  5. 手动实现一个vue的mvvm,思路解析
  6. 段钢荣获 WIT Awards 2018 年度安全人物|FIT 2019
  7. c# 注册了Ctrl+空格为热键,捕获后发送Ctrl+Shift
  8. 51CTO博客改版日记(目录) 2006年 by小废
  9. java泛型好处及案例
  10. uva 10308 Roads in the North