文档章节

一致性协议算法-------------Paxos算法

满小茂
 满小茂
发布于 2016/02/24 18:44
字数 626
阅读 240
收藏 7

‍‍‍‍

基本算法(basic paxos)

‍‍‍算法(决议的提出与批准)主要分为两个阶段:

1. prepare阶段: 

(1). Proposer希望提出方案V1,首先发出prepare请求至大多数AcceptorPrepare请求内容为序列号<SN1>;

(2). Acceptor接收到prepare请求<SN1>时,检查自身上次回复过的prepare请求<SN2>

    a). 如果SN2>SN1,则忽略此请求,直接结束本次批准过程;

    b). 否则检查上次批准的accept请求<SNxVx>,并且回复<SNxVx>;如果之前没有进行过批准,则简单回复<OK>;

 

2. accept批准阶段: 

(2a). 经过一段时间,收到一些Acceptor回复,回复可分为以下几种:

        a). 回复数量满足多数派,并且所有的回复都是<OK>,则Proposer发出accept请求,请求内容为议案<SN1V1>;

        b). 回复数量满足多数派,但有的回复为:<SN2V2><SN3V3>...,,则Porposer找到所有回复中序列号最大的(SNx)值(Vx,假设为  <SNxVx>,则发出accept请求,请求内容为议案<SN1Vx>;

        c). 回复数量不满足多数派,Proposer尝试增加序列号为SN1+,转1继续执行;

 

  (2b). 经过一段时间,Proposer收到一些Acceptor回复,回复可分为以下几种:

        a). 回复数量满足多数派,则确认V1被接受;

        b). 回复数量不满足多数派,V1未被接受,Proposer增加序列号为SN1+,转1继续执行;

(3). 在不违背自己向其他Proposer的承诺的前提下,Acceptor收到accept 请求后即接受并回复这个请求。

 

Paxos算法的用处

      1.领导选举,当主节点宕机,从节点服务器群组发起领导选举

     2.多节点数据日志同步,数据副本一致性multi-paxos)。

          多个Proposer(Client)发起数据请求,把所有请求交由Proposer Leader来向Acceptor集群发送日志同步请求。log-replication

       详情: http://www.tuicool.com/articles/RfIRZb,(基于multi-paxos的复制协议)

    3.paxos用来在多个process之间对同一个值达成一致

 

‍‍‍‍

在paxos算法中存在Client、Proposer、Proposer Leaer、Acceptor、Learn五种角色,可精简为三种主要角色:proposer、acceptor、learn。角色只是逻辑上存在的,在实际实现中,节点可以身兼多职。

Paxos各角色职责

 

分布式系统Paxos算法

http://www.jdon.com/artichect/paxos.html

 

libpaxos 库

http://libpaxos.sourceforge.net/

(微信)https://github.com/tencent-wechat/phxpaxos

 

微信PaxosStore:深入浅出Paxos算法协议

http://url.cn/41mhZLy

 

© 著作权归作者所有

共有 人打赏支持
上一篇: Git 命令
满小茂
粉丝 76
博文 120
码字总数 135336
作品 0
成都
程序员
私信 提问
ZAB协议和Paxos算法

前言 在上一篇文章Paxos算法浅析中主要介绍了Paxos一致性算法应用的场景,以及对协议本身的介绍;Google Chubby是一个分布式锁服务,其底层一致性实现就是以Paxos算法为基础的;但这篇文件并...

ksfzhaohui
2016/12/27
1K
0
Raft 与 Paxos的区别

Raft Raft概述 Raft一致性算法用于保证在分布式的条件下,所有的节点可以执行相同的命令序列,并达到一致的状态。这类的问题可以归结为“Replicated state machines”问题。 Raft一致性算法的...

cloud-coder
2016/07/14
1K
0
Distributed Systems-一致性协议背景介绍及Paxos算法的推导

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/feilengcui008/article/details/50829689 Paxos算法无疑是分布式系统理论中的经典,由于很多论文、博客都没有...

feilengcui008
2016/03/08
0
0
从分布式一致性到共识机制(一)Paxos算法

从分布式系统的CAP理论出发,关注分布式一致性,以及区块链的共识问题及解决。 区块链首先是一个大规模分布式系统,共识问题本质就是分布式系统的一致性问题,但是又有很大的不同。 工程开发...

邴越
2018/03/25
0
0
Paxos算法浅析

前言 在文章2PC/3PC到底是啥中介绍了2PC这种一致性协议,从文中了解到2PC更多的被用在了状态一致性上(分布式事务),在数据一致性中很少被使用;而Paxos正是在数据一致性中被广泛使用,在过去...

ksfzhaohui
2016/12/17
3.1K
1

没有更多内容

加载失败,请刷新页面

加载更多

JVM-----java内存区域与java内存模型

一.java内存区域 jvm在执行java程序的过程中会把所管理的内存分为若干不同的区域,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁的。 以下是java运...

Carol998
51分钟前
3
0
小白用Python玩爬虫,必须了解的一个爬虫流程!

爬虫基本流程 发起请求 通过HTTP库向目标服务器发送Request,Request内可以包含额外的headers信息。 获取响应内容 如果服务器正常响应,会返回Response, 里面包含的就是该页面的内容。 解析...

糖宝lsh
57分钟前
2
0
Docker之安装Harbor镜像仓库

我本机的IP是172.xx.x.x,装了一个ubuntu18的虚拟机(虚拟机的IP是192.168.33.5),下文中使用的Docker版本都是17.12。我本地使用的开发环境是Ubuntu18,在本机和虚拟机上都要安装Docker,安装...

克虏伯
59分钟前
2
0
关于iOS中yy_model解析

这个,算是个总结吧, 之前基本上用的都是mj,不过都差不多 // json转模型+ (instancetype)yy_modelWithJSON:(id)json; // 模型转字符串- (NSString *)yy_modelToJSONString /...

RainOrz
今天
2
0
OpenSSL::SSL::SSLError: hostname "file.api.weixin.qq.com" does not match the server certificate

Rails在使用 rest-client 会出现ssl的问题,已rest-client =1.8.0 版本为例默认使用了系统的CA验证, 服务器环境 : Ruby2.1.1 Rest-client-1.6.8 OpenSSL 1.0.2 如果在服务器环境下其他项目...

mingle
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部