理解分布式一致性:Paxos协议之Generalized Paxos Byzantine Paxos
理解分布式一致性:Paxos协议之Generalized Paxos & Byzantine Paxos
- Generalized Paxos
- Byzantine Paxos
- Byzantine Multi-Paxos
- Fast Byzantine Multi-Paxos
在前面一篇文章我们讲到了理解分布式一致性:Paxos协议之Cheap Paxos & Fast Paxos,本篇文章我会讲解Paxos协议的另外两个变种:Generalized Paxos和Byzantine Paxos。
Generalized Paxos
我们大家都知道,分布式一致性的最大问题就是数据同步的问题,而产生问题的原因就是冲突,按照之前讲到的各种Paxos协议方案,发生了冲突之后就必须解决冲突然后重新发送请求,这样就会提高数据同步的成本和时间,那么有没有更好的方式来解决这个问题呢?
答案肯定是有。在分布式系统中,冲突是不可避免的,遇到冲突的时候是不是每次都解决冲突然后重新发送请求呢?我们举个例子:
如果Client1发送请求ReadA,Client2 发送请求ReadB,系统4个Acceptors,有2个接收ReadA,有2个接收ReadB,在共识层面来说,因为没有达到最大的共识个数,达不成共识,需要重新发送。但是如果我们仔细观察一下两个请求,ReadA,ReadB这两个命令是没有任何联系的,无论先执行哪一个都是同样的效果。那么我们可以认为这种情况是没有冲突的,我们在执行层面自行安排两个请求的顺序,而不用再次共识。 这就叫做Generalized Paxos。
这种共识的前提就是不同命令的先后顺序无关。下面以序列图的形式更加详细的介绍:
Byzantine Paxos
最后一个我们要讲的Paxos协议是Byzantine Paxos。熟悉虚拟货币的人应该对拜占庭协议并不陌生,这里我们也不多讲拜占庭协议,后面我会用单独的文章来详细介绍拜占庭协议。
上面我们讲到的所有的Paxos协议,只讲到了服务出错的情况,并没有考虑服务伪造篡改信息的情况,即并没有考虑到恶意节点。而拜占庭协议就是为了解决这个问题而产生的。
Byzantine Paxos比正常的Paxos协议多了一个消息验证的过程,这个验证使用了拜占庭协议。
Byzantine Multi-Paxos
下面是个Byzantine Multi-Paxos的序列图:
Fast Byzantine Multi-Paxos
同样的也会有Fast Byzantine Multi-Paxos,为了更加Fast,本协议将Verify和Accepted进行融合,放在一步完成。
更多精彩内容且看:
- 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新
- Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新
- Spring 5.X系列教程:满足你对Spring5的一切想象-持续更新
- java程序员从小工到专家成神之路(2020版)-持续更新中,附详细文章教程
更多教程请参考flydean的博客
理解分布式一致性:Paxos协议之Generalized Paxos Byzantine Paxos相关推荐
- 理解分布式一致性:Raft协议
理解分布式一致性:Raft协议 什么是分布式一致性 Leader选举 日志复制流程 term选举周期 timeout 选举和选举timeout 选举分裂 日志复制和心跳timeout 在分布式系统中, ...
- 理解分布式一致性:Paxos协议之Basic Paxos
理解分布式一致性:Paxos协议之Basic Paxos 角色 Proposal Number & Agreed Value Basic Paxos Basic Paxos without f ...
- 理解分布式一致性:Paxos协议之Cheap Paxos Fast Paxos
理解分布式一致性:Paxos协议之Cheap Paxos & Fast Paxos Cheap Paxos Message flow: Cheap Multi-Paxos Fast Paxos ...
- 理解分布式一致性:Paxos协议之Multi-Paxos
理解分布式一致性:Paxos协议之Multi-Paxos Multi-Paxos without failures Multi-Paxos when phase 1 can be skipped Mu ...
- 理解分布式一致性:拜占庭容错与PBFT
理解分布式一致性:拜占庭容错与PBFT 拜占庭问题 拜占庭容错BFT PBFT(Practical Byzantine Fault Tolerance) why 3f+1 ? PBFT 的优点 PBF ...
- 一次性吃透分布式一致性Raft协议
简介 Raft是一种管理复制日志的一致性算法,它提供了和 Paxos 算法相同的功能和性能,但是它的算法结构和 Paxos 不同,使得 Raft 算法更加容易理解并且更容易构建实际的系统.为了提升可理 ...
- 分布式一致性协议 之 Paxos协议
1.什么是Paxos Paxos协议其实说的就是Paxos算法, Paxos算法是基于消息传递且具有高度容错特性的一致性算法,是目前公认的解决分布式一致性问题最有效的算法之一. Paxos由 莱斯利· ...
- 浅谈paxos协议与zookeeper
一.介绍两篇好博客 1.zookeeper全解析–paxos作为灵魂 https://blog.csdn.net/YQlakers/article/details/72630353 2.下面这篇文章介 ...
- 图解Raft:应该是最容易理解的分布式一致性算法
分布式一致性 想象一下,我们有一个单节点系统,且作为数据库服务器,然后存储了一个值(假设为X).然后,有一个客户端往服务器发送了一个值(假设为8).只要服务器接受到这个值即可,这个值在单节点上的一致性 ...
最新文章
- php mysqli new 连接,php mysqli 连接数据库
- eclipse C/C++环境搭建
- django 后台日期_Django中的日期和时间格式 DateTimeField
- 英特尔核显自定义分辨率_华为推出两款MateBook D系列笔记本:搭载英特尔11代酷睿...
- 开源中国android代码是什么,开源中国 OsChina Android 客户端源码分析(1)启动界面 app_start...
- guns框架字典取值_10分钟搞定Guns快速开发平台
- s3c2410多通道adc驱动及测试程序
- 计算机组成原理:计算机内负数二进制求得方式
- 字节跳动一面:如何从 100 亿 URL 中找出相同的 URL?
- 【数据分享】滤泡性淋巴瘤研究数据集
- c++ win10下 遍历文件夹的方式, dirent.h头文件缺失问题
- 实对称阵的正交相似对角化
- 快速下载网页全部图片的方法
- 【生活中的逻辑谬误】以暴制暴和压制理性
- 给ibus-rime输入法添加小鹤双拼方案
- 想实现华为BLM模型,人力资源必不可少
- 每日问答——PMP题库训练2
- 使用EasyExcel下载,文件名乱码问题处理
- SpringBoot--SpringBoot 读取Properties文件(结合JDBC)
- OpenGL Transform Feedback