生活中的Paxos

来源:互联网 发布:院士 名额 知乎 编辑:程序博客网 时间:2024/05/22 15:05


CSDN 2016博客之星评选结果公布        【系列直播】算法与游戏实战技术        “我的2016”主题征文活动
 

生活中的Paxos,原来你我都在使用——对Paxos生活化的解读(二)

标签: 计算机分布式算法
 90人阅读 评论(0) 收藏 举报
 分类:

目录(?)[+]

根据上一篇的叙述,让我们做一个规范总结吧

自从老婆提议家庭生活,家庭全体成员一起献计献策之后,也经历了不短的时间。整个过程中,碰到过不少问题,但在全家的同心协力下,也都得到了解决。一天,老婆提议把过程中沉淀下来的经验和规范汇总起来,我想想也有道理,就做了下面这个汇总:

  • 家庭成员明确不同的分工。提议人、决策人、参与人。

其中,提议人和参与人的人数没有限制,视家庭成员而定。但是,决策人的人数最好为奇数,最小人数是3人(3、5、7、9…。不是奇数的话,会碰到我们最早遇到的两个提议相持不下的情况。)

  • 整个过程分为三个阶段。提议阶段,决策阶段,通知阶段。
  •  
    • 提议阶段提议人在这个阶段,可以任意发起提议请求。提议请求可以被更改、抢占。简单起见,我们做了一个规定:新的提议请求可以抢占老的提议请求。
    • 决策阶段决策一旦达成了多数派,就不能被更改。与此同时,达成多数派决议的决策人,还有义务将当前达成的决议告知其他提议人和决策人,告诉大家本轮决策已经达成了,不用绞尽脑汁YY新的提议。
    • 通知阶段决策达成之后,最后一个阶段就是通知阶段。将当前决策的内容告诉参与人。此时要坚守一点原则:不能说谎。当然,这也是中华民族的传统美德,我们家里是每个人都能做到的…

经验和规范总结起来,好像也没有几条,简单易理解,全家人都能遵守。直到有一天,一位搞技术的朋友到我家来做客,无意中聊起这个,我把这个说给他听,他猛地一拍大腿,跳了起来,嚷嚷道:我kao,这不就是分布式Paxos协议的雏形吗!这时我才知道,原来我们家误打误撞之下,也能够跟大师在同一个层面思考问题了。

一切并未结束

规矩是死的,人是活的,哪怕严谨如各种法规和法律,都会有人钻空子,更别提我们家里几个臭皮匠YY出来的了。现有的规矩,后面又逐渐暴露出一些漏洞和不足之处。我在这里列举一二:

  • 提议更改抢占没完没了

由于提议阶段可以抢占,后来又发生了几次抢占没完没了的事。仍旧是同样的例子:

老婆:中午不想做饭了,出去吃啥好?

我:我有一个提议,大家想不想听听?(1号提议)

小宝外婆:说来听听。

老婆:登登,你的肯定不靠谱,我也有一个提议。(2号提议,抢占1号)

小宝外婆:那我们就听听琛琛的吧。

我:还是听听我这个吧,我的这个提议肯定更好。(3号提议,又抢占2号)

小宝外婆:那好,登登既然坚持,还是听登登的。

老婆:凭什么他的更好,听我的。(4号提议,叒抢占3号)

小宝外婆:

我:

老婆:

在提议阶段一直相互抢占,一直未进入决策阶段。当然,实际生活中肯定不会出现这种情况,对我来说,这不是找抽吗?但是这个风险本身是存在的。

  • 碰到连续有几件事情需要决策,效率不高

一般周末全家出去玩,基本上是一个上午、一个下午,或者是完整的一整天。涉及到去哪玩,开车走哪条路,在哪吃饭等一系列需要决策的问题。如果对每一个问题都这么来一轮,效率太低。而且,这些问题相互之间还有关联性,分开来一个个决策也不好。总不能决定去西溪湿地玩,但是却去钱江新城吃饭,太远了也不现实。

问题总是用来解决的,而且无论是生活还是工作,都是在解决了一个老问题后,等着新问题的到来。有问题不怕,我们需要锻炼的,是坦然面对层出不穷新问题的心态。

写在最后

写了这么多,也该收笔了。正如文章开始引言部分所说,个人的本意还是想以贴近生活,更加通俗易懂的例子,来解读这个号称分布式系统领域最为难懂的Paxos协议。文章没法覆盖Paxos的方方面面, 而只是作为一个引子,希望能够从不同的视角来说明Paxos协议中各种标准和规范的由来。网上关于Paxos的文章那是多如牛毛,想更深入的了解,Google之。个人最近看得比较多的两篇,一个是Google同学写的《Paxos made live》,另一篇是李凯同学写的《架构师需要了解的Paxos原理、历程及实战》,感觉都非常不错,一并推荐给大家。

最后,还是要感谢 克里斯.费利 博士,不管我这篇文章质量如何,下定决心写很大程度上是受到了其《宝宝的量子物理学》系列丛书的影响,家里有小宝宝的同学,也一并推荐给大家,值得买回来读个宝宝听!

转载自:阿里技术发展协会

作者:圭多

0
 
0
 
 

我的同类文章

  • 生活中的Paxos,原来你我都在使用——对Paxos生活化的解读(一)2016-11-17

    参考知识库

    img

    大型网站架构知识库

    猜你在找
    Ceph—分布式存储系统的另一个选择
    模板匹配的字符识别(OCR)算法原理
    数据结构基础系列(1):数据结构和算法
    Python算法实战视频课程--二叉树
    网络工程师流水线技术计算强化训练教程
    Zookeeper全解析Paxos作为灵魂
    Zookeeper全解析Paxos作为灵魂
    Zookeeper全解析Paxos作为灵魂
    Zookeeper全解析Paxos作为灵魂转
    Zookeeper全解析Paxos作为灵魂
    关闭
    查看评论

      暂无评论

    发表评论
    • 用 户 名:
    • jiafu1115
    • 评论内容:
    • 插入代码
        
    * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    核心技术类目
    全部主题 Hadoop AWS 移动游戏 Java Android iOS Swift 智能硬件 Docker OpenStack VPN Spark ERP IE10 Eclipse CRM JavaScript 数据库 Ubuntu NFC WAP jQuery BI HTML5 Spring Apache .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大数据 aptech Perl Tornado Ruby Hibernate ThinkPHP HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap
      个人资料
       
      夜爬梧桐山
       
      • 访问:223次
      • 积分:28
      • 等级: 
      • 排名:千里之外
      • 原创:2篇
      • 转载:4篇
      • 译文:0篇
      • 评论:0条
      文章分类
    • 机器学习(0)
    • 算法(1)
    • 分布式(2)
    • Java(0)
    • Spark(0)
      文章存档
    • 2016年12月(2)
    • 2016年11月(4)
      阅读排行
    • 生活中的Paxos,原来你我都在使用——对Paxos生活化的解读(二)(85)
    • 生活中的Paxos,原来你我都在使用——对Paxos生活化的解读(一)(39)
    • 编程之美中烙饼排序的scala实现(38)
    • 编程之美中01背包问题的scala实现(11)
    • CopyOnWrite容器(0)
      评论排行
    • 生活中的Paxos,原来你我都在使用——对Paxos生活化的解读(一)(0)
    • 生活中的Paxos,原来你我都在使用——对Paxos生活化的解读(二)(0)
    • 编程之美中烙饼排序的scala实现(0)
    • 编程之美中01背包问题的scala实现(0)
    • CopyOnWrite容器(0)
      推荐文章
      • * Android 反编译初探 应用是如何被注入广告的
      • * 凭兴趣求职80%会失败,为什么
      • * 安卓微信自动抢红包插件优化和实现
      • * 【游戏设计模式】之四 《游戏编程模式》全书内容提炼总结
      • * 带你开发一款给Apk中自动注入代码工具icodetools(完善篇)
    <iframe id="iframeu2734133_0" src="http://pos.baidu.com/scgm?sz=250x250&amp;rdid=2734133&amp;dc=3&amp;di=u2734133&amp;dri=0&amp;dis=0&amp;dai=1&amp;ps=1883x0&amp;coa=at%3D3%26rsi0%3D250%26rsi1%3D250%26pat%3D17%26tn%3DbaiduCustNativeAD%26rss1%3D%2523FFFFFF%26conBW%3D1%26adp%3D1%26ptt%3D0%26titFF%3D%2525E5%2525BE%2525AE%2525E8%2525BD%2525AF%2525E9%25259B%252585%2525E9%2525BB%252591%26titFS%3D%26rss2%3D%2523000000%26titSU%3D0&amp;dcb=BAIDU_SSP_define&amp;dtm=HTML_POST&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1482977674418&amp;ti=%E7%94%9F%E6%B4%BB%E4%B8%AD%E7%9A%84Paxos%EF%BC%8C%E5%8E%9F%E6%9D%A5%E4%BD%A0%E6%88%91%E9%83%BD%E5%9C%A8%E4%BD%BF%E7%94%A8%E2%80%94%E2%80%94%E5%AF%B9Paxos%E7%94%9F%E6%B4%BB%E5%8C%96%E7%9A%84%E8%A7%A3%E8%AF%BB%EF%BC%88%E4%BA%8C%EF%BC%89%20-%20u013597009%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20%E5%8D%9A%E5%AE%A2%E9%A2%91%E9%81%93%20-&amp;ari=2&amp;dbv=2&amp;drs=3&amp;pcs=1263x657&amp;pss=1265x4247&amp;cfv=0&amp;cpl=5&amp;chi=6&amp;cce=true&amp;cec=UTF-8&amp;tlm=1482977674&amp;rw=673&amp;ltu=http%3A%2F%2Fblog.csdn.net%2Fu013597009%2Farticle%2Fdetails%2F53197297&amp;ecd=1&amp;psr=1280x800&amp;par=1280x763&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=7&amp;col=zh-CN&amp;cdo=-1&amp;tcn=1482977674&amp;qn=d7c32ffbde194abd&amp;tt=1482977674400.21.22.24" width="250" height="250" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;"></iframe>
    CSDN 2016博客之星评选结果公布        【系列直播】算法与游戏实战技术        “我的2016”主题征文活动
     

    生活中的Paxos,原来你我都在使用——对Paxos生活化的解读(二)

    标签: 计算机分布式算法
     90人阅读 评论(0) 收藏 举报
     分类:

    目录(?)[+]

    根据上一篇的叙述,让我们做一个规范总结吧

    自从老婆提议家庭生活,家庭全体成员一起献计献策之后,也经历了不短的时间。整个过程中,碰到过不少问题,但在全家的同心协力下,也都得到了解决。一天,老婆提议把过程中沉淀下来的经验和规范汇总起来,我想想也有道理,就做了下面这个汇总:

    • 家庭成员明确不同的分工。提议人、决策人、参与人。

    其中,提议人和参与人的人数没有限制,视家庭成员而定。但是,决策人的人数最好为奇数,最小人数是3人(3、5、7、9…。不是奇数的话,会碰到我们最早遇到的两个提议相持不下的情况。)

    • 整个过程分为三个阶段。提议阶段,决策阶段,通知阶段。
    •  
      • 提议阶段提议人在这个阶段,可以任意发起提议请求。提议请求可以被更改、抢占。简单起见,我们做了一个规定:新的提议请求可以抢占老的提议请求。
      • 决策阶段决策一旦达成了多数派,就不能被更改。与此同时,达成多数派决议的决策人,还有义务将当前达成的决议告知其他提议人和决策人,告诉大家本轮决策已经达成了,不用绞尽脑汁YY新的提议。
      • 通知阶段决策达成之后,最后一个阶段就是通知阶段。将当前决策的内容告诉参与人。此时要坚守一点原则:不能说谎。当然,这也是中华民族的传统美德,我们家里是每个人都能做到的…

    经验和规范总结起来,好像也没有几条,简单易理解,全家人都能遵守。直到有一天,一位搞技术的朋友到我家来做客,无意中聊起这个,我把这个说给他听,他猛地一拍大腿,跳了起来,嚷嚷道:我kao,这不就是分布式Paxos协议的雏形吗!这时我才知道,原来我们家误打误撞之下,也能够跟大师在同一个层面思考问题了。

    一切并未结束

    规矩是死的,人是活的,哪怕严谨如各种法规和法律,都会有人钻空子,更别提我们家里几个臭皮匠YY出来的了。现有的规矩,后面又逐渐暴露出一些漏洞和不足之处。我在这里列举一二:

    • 提议更改抢占没完没了

    由于提议阶段可以抢占,后来又发生了几次抢占没完没了的事。仍旧是同样的例子:

    老婆:中午不想做饭了,出去吃啥好?

    我:我有一个提议,大家想不想听听?(1号提议)

    小宝外婆:说来听听。

    老婆:登登,你的肯定不靠谱,我也有一个提议。(2号提议,抢占1号)

    小宝外婆:那我们就听听琛琛的吧。

    我:还是听听我这个吧,我的这个提议肯定更好。(3号提议,又抢占2号)

    小宝外婆:那好,登登既然坚持,还是听登登的。

    老婆:凭什么他的更好,听我的。(4号提议,叒抢占3号)

    小宝外婆:

    我:

    老婆:

    在提议阶段一直相互抢占,一直未进入决策阶段。当然,实际生活中肯定不会出现这种情况,对我来说,这不是找抽吗?但是这个风险本身是存在的。

    • 碰到连续有几件事情需要决策,效率不高

    一般周末全家出去玩,基本上是一个上午、一个下午,或者是完整的一整天。涉及到去哪玩,开车走哪条路,在哪吃饭等一系列需要决策的问题。如果对每一个问题都这么来一轮,效率太低。而且,这些问题相互之间还有关联性,分开来一个个决策也不好。总不能决定去西溪湿地玩,但是却去钱江新城吃饭,太远了也不现实。

    问题总是用来解决的,而且无论是生活还是工作,都是在解决了一个老问题后,等着新问题的到来。有问题不怕,我们需要锻炼的,是坦然面对层出不穷新问题的心态。

    写在最后

    写了这么多,也该收笔了。正如文章开始引言部分所说,个人的本意还是想以贴近生活,更加通俗易懂的例子,来解读这个号称分布式系统领域最为难懂的Paxos协议。文章没法覆盖Paxos的方方面面, 而只是作为一个引子,希望能够从不同的视角来说明Paxos协议中各种标准和规范的由来。网上关于Paxos的文章那是多如牛毛,想更深入的了解,Google之。个人最近看得比较多的两篇,一个是Google同学写的《Paxos made live》,另一篇是李凯同学写的《架构师需要了解的Paxos原理、历程及实战》,感觉都非常不错,一并推荐给大家。

    最后,还是要感谢 克里斯.费利 博士,不管我这篇文章质量如何,下定决心写很大程度上是受到了其《宝宝的量子物理学》系列丛书的影响,家里有小宝宝的同学,也一并推荐给大家,值得买回来读个宝宝听!

    转载自:阿里技术发展协会

    作者:圭多

    0
     
    0
     
     

    我的同类文章

    • 生活中的Paxos,原来你我都在使用——对Paxos生活化的解读(一)2016-11-17

      参考知识库

      img

      大型网站架构知识库

      猜你在找
      Ceph—分布式存储系统的另一个选择
      模板匹配的字符识别(OCR)算法原理
      数据结构基础系列(1):数据结构和算法
      Python算法实战视频课程--二叉树
      网络工程师流水线技术计算强化训练教程
      Zookeeper全解析Paxos作为灵魂
      Zookeeper全解析Paxos作为灵魂
      Zookeeper全解析Paxos作为灵魂
      Zookeeper全解析Paxos作为灵魂转
      Zookeeper全解析Paxos作为灵魂
      关闭
      查看评论

        暂无评论

      发表评论
      • 用 户 名:
      • jiafu1115
      • 评论内容:
      • 插入代码
          
      * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
      核心技术类目
      全部主题 Hadoop AWS 移动游戏 Java Android iOS Swift 智能硬件 Docker OpenStack VPN Spark ERP IE10 Eclipse CRM JavaScript 数据库 Ubuntu NFC WAP jQuery BI HTML5 Spring Apache .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大数据 aptech Perl Tornado Ruby Hibernate ThinkPHP HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap
        个人资料
         
        夜爬梧桐山
         
        • 访问:223次
        • 积分:28
        • 等级: 
        • 排名:千里之外
        • 原创:2篇
        • 转载:4篇
        • 译文:0篇
        • 评论:0条
        文章分类
      • 机器学习(0)
      • 算法(1)
      • 分布式(2)
      • Java(0)
      • Spark(0)
        文章存档
      • 2016年12月(2)
      • 2016年11月(4)
        阅读排行
      • 生活中的Paxos,原来你我都在使用——对Paxos生活化的解读(二)(85)
      • 生活中的Paxos,原来你我都在使用——对Paxos生活化的解读(一)(39)
      • 编程之美中烙饼排序的scala实现(38)
      • 编程之美中01背包问题的scala实现(11)
      • CopyOnWrite容器(0)
        评论排行
      • 生活中的Paxos,原来你我都在使用——对Paxos生活化的解读(一)(0)
      • 生活中的Paxos,原来你我都在使用——对Paxos生活化的解读(二)(0)
      • 编程之美中烙饼排序的scala实现(0)
      • 编程之美中01背包问题的scala实现(0)
      • CopyOnWrite容器(0)
        推荐文章
        • * Android 反编译初探 应用是如何被注入广告的
        • * 凭兴趣求职80%会失败,为什么
        • * 安卓微信自动抢红包插件优化和实现
        • * 【游戏设计模式】之四 《游戏编程模式》全书内容提炼总结
        • * 带你开发一款给Apk中自动注入代码工具icodetools(完善篇)
      0 0
      原创粉丝点击