ZAB与Paxos算法的联系与区别

两者联系
  • 两者都存在一个类似于Leader的进程角色,由其负责协调多个Follower进程的运行
  • Leader进程会等待超过半数的Follower做出正确的反馈后,才会将一个提案进行提交
  • 在ZAB协议,每个Proposal中都包含一个epoch值,用来代表当前的Leader周期,在Paxos算法中同样有这样的标识,只是名字变成了Ballot
两者区别
  • Paxos算法中,一个新选举产生的主进程会进行两个阶段工作:

    • 第一阶段读阶段,这个阶段,新的主进程会通过和所有其他进程进行通信的方式来收集上一个主进程提出的提案,并将他们提交
    • 第二阶段被称为写阶段,这个阶段,当前主进程开始提出自己的提案。
  • ZAB在Paxos的基础上添加了一个同步节点,同步节点之前,ZAB也存在一个和Paxos算法中的读阶段非常类似的过程,称为(Discovery)阶段。在同步阶段中,新的Leader会确保存在过半的Follower已经提交了之前Leader周期中的所有事务Proposal。这一步骤有效的保证Leader在新周期中提出事务Proposal之前,所有进程都已经完成了对之前所有事务Proposal的提交。一旦完成同步后,ZAB就执行和Paxos类似的写阶段。

  • 总的来说ZAB协议和Paxos算法本职区别在于两者设计目标的不同。ZAB主要用于构建一个高可用的分布式数据主备系统,例如Zookeeper,而Paxos算法则是用于构建一个分布式的一致性状态系统。

上一篇Zookeeper—ZAB协议
下一篇Zookeeper–Watcher机制源码剖析一

Zookeeper--ZAB与Paxos算法联系与区别相关推荐

  1. 深入浅出Zookeeper特性以及Paxos算法

    Zookeeper 1. Zookeeper基本概念 1.1 Zookeeper概述 1.2 Zookeeper集群角色 1.3 Zookeeper特性 2. Zookeeper 数据类型 2.1 Z ...

  2. 【Raft】分布式一致性算法Raft和zab、paxos

    目录 前言 Raft算法 Raft动画教程 Raft手动设置模拟 Raft协议说明 Raft和zab区别 paxos算法 前言 开发面试Zookeeper肯定要问,Zab协议逃不掉,那么和 Raft ...

  3. Zookeeper与paxos算法

    一.            zookeeper是什么 官方说辞:Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如 ...

  4. ZAB 协议和Paxos 算法

    Paxos 算法应该可以说是 ZooKeeper 的灵魂了.但是,ZooKeeper 并没有完全采用 Paxos算法 ,而是使用 ZAB 协议作为其保证数据一致性的核心算法.另外,在ZooKeeper ...

  5. Zookeeper笔记(二)Paxos算法与Zookeeper的工作原理

    Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目, 它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管 ...

  6. Paxos算法之旅(四)zookeeper代码解析--转载

    ZooKeeper是近期比较热门的一个类Paxos实现.也是一个逐渐得到广泛应用的开源的分布式锁服务实现.被认为是Chubby的开源版,虽然具体实现有很多差异.ZooKeeper概要的介绍可以看官方文 ...

  7. Paxos算法与Zookeeper分析

    1 Paxos算法 1.1 基本定义 算法中的参与者主要分为三个角色,同时每个参与者又可兼领多个角色: ⑴proposer 提出提案,提案信息包括提案编号和提议的value; ⑵acceptor 收到 ...

  8. Zookeeper Paxos算法 一致性协议

    前言 Paxos 一致性协议可以说是一致性协议研究的起点,也以难以理解闻名.其实协议本身并没有多难理解,它的难理解性主要体现在:为何如此设计协议以及如何证明其正确性.本文尝试通过流程图来说明协议的内容 ...

  9. Zookeeper的Paxos算法,(2P/3P/CAP/BASE)一致性协议简单介绍

    2P/3P提交(为了保证事务的ACID) 2P 就是二段提交(RDBMS经常就这种机制,保证强一致性),3P就是三段提交: 2P提交 -- 1阶段:提交事务请求(投票阶段)               ...

最新文章

  1. python turtle画滑稽_使用python的turtle函数绘制一个滑稽表情的方法
  2. linux进程间通信:POSIX信号量
  3. hashmap中用红黑树不用其他树_HashMap面试专题:常问六题深入解析
  4. Ubuntu nfs配置
  5. Ubuntu中搭建Hadoop2.5.2完全分布式系统(一)
  6. mysqldump 定时备份数据(全量)
  7. 【bzoj2060】[Usaco2010 Nov]Visiting Cows拜访奶牛 树形dp
  8. 【推荐实践】Bandit算法在携程推荐系统中的应用与实践
  9. cxf 本地wsdl_CXF wsdl2java 详解及常见问题
  10. 在学习时,遇到in module ssbuild. File is included in 4 contexts
  11. 微信公众号网页授权流程
  12. Centos重置root密码
  13. 等值面抽取技术(Iso-surfaces Extraction Technique)
  14. Unity3D之快捷键大全
  15. 嵌入式linux编程开发必备知识
  16. python链家数据分析统计服_链家二手房成交——Python数据分析
  17. 国外计算机cpu排行,电脑处理器最新排行天梯图_处理器CPU最新天梯图2020 - 系统家园...
  18. (numpy)python中Array的常用函数
  19. 全球都在研发的虚拟气候设备,是治愈“失眠”的最优解吗?
  20. 今天,Java 12 正式发布了! 你在用哪个版本?

热门文章

  1. OSI各层相关的协议
  2. Andorid之bitmap里面的压缩总结
  3. ctf镜子里面的世界_帮大爷干活,他送了我一只鞋子和一手套,又不能穿拿来做什么?哈哈哈|叶子|镜子|虫子|鞋子|棺材...
  4. java语言中的浮点型数据分为,Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float型和double型,其中dou...
  5. 软件测试推荐专业,软件测试专业老师推荐信
  6. 揭开不一样的世界,这5部纪录片绝对不能错过!
  7. 中柏平板u盘启动_大冶深圳东莞平板硫化机推选得新科技自动化
  8. fb静态区域_fb 静态数据
  9. gitee 从 拉取新分支到本地_Hexo博客详细教程(一)| 建立本地站点
  10. 7-3 银行家算法--综合 (50 分)(思路+详解+分析输入)宝宝们 加油