带你读《对象存储实战指南》第二章协调和复制2.1协调(四)

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 带你读《对象存储实战指南》第二章协调和复制2.1协调(四)

2.1.1原子广播


分布式系 统中,原子广播把消息 发送给个接收服务器 ,实现某种形式的组播,而且对千多条顺序消息,在多个接收服务器 侧能够保证完全顺序 ( TotalOrder)也就是说,发送端发送消息 X,  多个接收服务器 要么 收到消息 并处理,要么都不处理。若消息 X先千消息 Y发送表示为 X->Y) ,则多个接收服务器 都是先处理消息 X,  再处理消 息 Y,   保证完全顺序。原子广播技术 原理如图 2-8所示。

image.png

2-8      原子广原理

2-8(a )所示为 BirmanKenneth千原子广播的论文架 构,其中组播层包含组 播( GroupBroadcast, GBCAST原子广播AtomicBroadcast, ABCAST) 和先后广播( CausalBroadcast,

CBCAST),实现多台服务器 之间Broadcast协议

 

核心的交互流程如图2-8( b) 所示,每次有新 的成员加入将进行视图( View) 变换例如,B加入 A形成新的视图 ( AB),或者A离开旧视图   ( ABC) 形成的新的视图 ( BC) ,视图变换期间暂停客户 端请求,从而提高视图变效率 。而当视图内部较多成员出现时,将基千多数派投票 ( Quorum) 制形成新的稳定视图例如,在系统总共有 N个成情况下,如出现异常,那么只有出现异常的成个数大千或等千  ( N+l)   /2,   能形成新的视图。

视图变换成功进入 稳态后客户端就能 以原广播形式给 视图中的成员发送信息 保证完全顺序 ,如图 2-8( b) 所示。在( ABC)  成后,如果客户端 l先千客户端2发送消息给该视图那么在保证该视图的成员 ABC都处理完客户端 l的消息后,再处理客户端 2的消息。

广播技术 可以在某种程度上解 决两问题,或者非拜占庭故下的共识问题 把原子广播中 的成员作将若将军间通信出异常,则将多数派 投票淘汰 异常的将军,形成新的共识,旦形成的共识,那么后续的消息信将保证完全 顺序。

产业界的 VCS( VeritasClusterServer) 是基于 GAB来实集群的共识,以及保证集群消息通信在成员间的原子性和顺序性的

 

2.1.5牛见图复制

 

视图复制  ( Viewstamped  Replication,  VR)  的正式发表时间比 PAXOS 年,某些文绍两位图灵奖获得者BarbaraLiskovLeslieLamport各自独立发表并未相互借鉴。过从工程理解维度看 VR是设计完 备度非常 好的高质量论文,甚至可以直接指导 开发工作,这可能和BarbaraLiskov擅长编程和计机科,而 LeslieLamport更擅长理论研究有,毕Barba raLiskov因其面向对象编程的杰 出贡献获得图灵奖 著名的里 氏替换原(LiskovSubstitutionPrinciple) 就是她杰作。笔者的角度看VR对是被低估的论文 ,值得认真研究和分 析

千原子广播技术 之所以无法现数据复制,是因为广播固定视图内只保证消息 的顺。为了保证在成员 出现异常后数据的持久度和可用 性,VR在原子广播视图 的基础上 针对数据复制进 行了优化,可以用千数据复 制系统如图 2-9( a) 所示,VR描述了架构组件

·  副本 ( Replica)。通过分层的 VR复制代码 CVRCode) 和业务层代码 ( ServiceCode),

实现复制逻辑的解耦,并且会选举某 个副本为主 ( Primary)

·  客户端。它由用户代码 ( UserCode) VR复制代理 CVRProxy) 组成,VR复制代理负责给 VR发送请求。

2-9( b) 描述 VR复制的核心逻辑,它由副本中的主统一负处理客户端的请求顺序来实现请求顺序性,并结合复制的日志支撑发生主节点故障后 的数据恢复,从而提供完备的数据复 制系统

image.png

2-9    VR技术原


VR在发成员故障后 ,会在 正常的副本中选主

 

·   主是基千日志 做恢 ,而原子广播没有日志恢的过程

·  主会视图的逻辑时钟号和日志的顺号完成

·  客户制代理发送请求时会携带缓存的视图序号,主会比对本地视图序号和请求视图序,只相同才允许执行,从而避免视图切换时请求到不匹配的数据。

VR的全流程围绕视图序号和日志顺序号展开 ,是数据复 制的核技术,常被用千分布式存储和数据库,但原子广播无法实现该功能。

2.1.6 PAXOS

 

基千维基百科 的描述,PAXOS组解决共识问题的协议集 ,它 详细描述需要持久化

( Durabty) 处理的共识实现过程PAXOS技术原理如图 2-10示。

image.png

2-10PAXOS技术原理

 

PAXOS协议运行在网 络环境,对于N个成员的系统,能够容忍F个成员的崩溃停机故( CrashStop),但是必须满 足 N?=2F+IPAXOS包含如下角色

·  客户端。该角色负 责发送请求给 PAXOS分布式系 统,然后等待返回 响应。

·  接收者 ( AcceptorVoter)。该角色起到容错的作用 ,多个接收者形成 投票组 ,所有客户端请求必须被发送到投票组的接收者。

·  提案者 ( Proposer)该角色负责响应客户 端请求,当它收到请求后 ,会把请求发送给所有接收者 并达成致,提案者起到协调的作用,并推动协议的状态 机运行,同时通过协调控制多个请求写入同一对象的冲突。

·   学习者 ( Learner) 该角色负责处理如何响应客户 端,目的是提高可用性和支撑一致性模型。

·  领导者 ( Leader) 该角色 由 PAXOS选取某个提案 者担当 ,成员 都必须信任它。在出现故障后,多个成员希望成为领导者 ,此时会选取出 新的领导,通过它实现选主

在实际部署中,PAXOS的成员可能同时担任提案者 、接收者、学习者,而领导者就是承担主角色的成员,和VR的角色定义形成对应关系,如图2-11( a) 所示。VR的副本和 PAXOS成员(提案者、接收者、学习者)对应,VR   主和  PAXOS  的领导者对应VR  用重配置(Reconfiguration) 重新选主,而PAXOS用提案者扮演领导者实现选主 ,如图2-11( b) 所示。

image.png

2-11     PAXOSVR架构组件

 

PAXOS采用似两阶段提交  ( 2PhaseCommit,  2PC)  技术实现某请求在提案者接收者中达成致。2PC有两个阶段,共四个步 骤分别为 Phasela: PreparePhase1b:PromisePhase2a:AcceptPhase2b:AcceptedVR在实请求达致的过程中 ,采用是基千日志的复制,通过日志顺序号和业务代码结合解决故障时的重做 ( Redo)、回滚 ( Undo) 问题

经过 VRPAXOS经典论文对共识的探,业界发表了 大量关文章。1990SchneiderFred在论文 Implementing   Fault-Tolerant Services  Using  the State Machine ApproachATutorial中将状态机复制 ( StateMachineReplication) 作为共识的关键解决方案。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
对象存储
|
对象存储
|
存储 对象存储
带你读《对象存储实战指南》第三章命名和同步3.4小结
《对象存储实战指南》第三章命名和同步3.4小结
149 0
带你读《对象存储实战指南》第三章命名和同步3.4小结
|
存储 对象存储 块存储
带你读《对象存储实战指南》第三章命名和同步3.3逻辑时钟(二)
《对象存储实战指南》第三章命名和同步3.3逻辑时钟(二)
156 0
|
存储 数据库 对象存储
带你读《对象存储实战指南》第三章命名和同步3.3逻辑时钟(一)
《对象存储实战指南》第三章命名和同步3.3逻辑时钟
155 0
带你读《对象存储实战指南》第三章命名和同步3.3逻辑时钟(一)
|
存储 监控 算法
带你读《对象存储实战指南》第三章命名和同步3.2物理时钟同步(一)
《对象存储实战指南》第三章命名和同步3.2物理时钟同步(一)
191 0
带你读《对象存储实战指南》第三章命名和同步3.2物理时钟同步(一)
|
域名解析 存储 缓存
带你读《对象存储实战指南》第三章命名和同步3.1命名技术(三)
《对象存储实战指南》第三章命名和同步3.1命名技术(三)
152 0
带你读《对象存储实战指南》第三章命名和同步3.1命名技术(三)
|
网络安全 对象存储 网络架构
《对象存储实战指南》第三章命名和同步3.1命名技术(二)
《对象存储实战指南》第三章命名和同步3.1命名技术
163 0
《对象存储实战指南》第三章命名和同步3.1命名技术(二)
|
监控 网络协议 Java
带你读《对象存储实战指南》第三章命名和同步3.1命名技术
《对象存储实战指南》第三章命名和同步3.1命名技术
163 0
带你读《对象存储实战指南》第三章命名和同步3.1命名技术
|
vr&ar 对象存储
带你读《对象存储实战指南》第二章协调和复制2.3小结
《对象存储实战指南》第二章协调和复制2.3小结
116 0
带你读《对象存储实战指南》第二章协调和复制2.3小结

热门文章

最新文章