暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
openGauss日志共识框架大揭秘.docx
103
6页
4次
2023-10-20
免费下载
深度干货!openGauss 日志共识框架大揭秘
分布式一致性算法是一个分布式系统的基础性问题,所要解决的是一个分布式系统如何就某
个值(决议)达成强一致,进而解决系统的高可用问题。Paxos 是最重要的分布式一致性算法,
很多人都把它作为“分布式一致性协议”的代名词。
虽然 Paxos 理论已经提出了很多年,使用 Paxos 及其各变种协议的产品也层出不穷,但是真
正工业级的、第三方独立库还是很少见,开源的项目更是少之又少,参考 Paxos 协议的常见开源
产品有 Zookeeperetcd,但是其协议并不能支持一个高吞吐的状态机复制,且没有提供独立的第
三方库,可供其他系统快速接入使用。
为此,我们设计并实现了 DCF 特性,用于支持 openGauss 涉及到的分布式强一致场景。
1 什么是 DCF
DCF 全称是 Distributed Consensus Framework,即分布式一致性共识框架。解决分布式一致性
问题典型算法是 PaxosRaft 等,DCF 实现了 Paxos 算法。使用 DCF 可以提供日志复制、集群高
可用等能力。DCF 提供了基于 Paxos 多种角色节点类型,并能进行调整。日志复制支持动态流量
调整,支持少数派强起能力,自选主能力。
DCF 是一款高性能、高度成熟可靠、易扩展、易使用的独立基础库,其他系统通过接口与 DCF
简单对接,就能够轻松拥有 Paxos 算法赋予的强一致、高可用、自动容灾等能力。
DCF 功能架构图如上图所示:主要包括:算法模块、存储模块、通信模块、服务层等。
算法模块:
算法模块是基于 multi-paxos 协议实现,同时结合自身业务场景、及高性能和生态的需求,DCF
了很多功能扩展和性能优化,使其相对于基础的 multi-paxos,功能变的更加丰富,在多种部署场景下
性能都有明显的提升。其主要包括:Leader 选举模块,日志复制模块,元数据模块,以及集群管理模
块等。
存储模块:
出于特定业务场景和极致高性能考虑,DCF 将日志存储单独抽取出一套公共接口,并实现了一个
默认的高性能存储模块,有特定场景或极致高性能及成本需求的用,可以结合已有的存储系统,对
DCF 的日志存储接口实现其特定需求,也是 DCF 作为第三方独立库的优之一。
通信模块:
通信模块主要是基于 MEC 实现(Message Exchange Component),提供整个 DCF 组件例间通信
能力,以及异步事件处理框架,主要功能有:可扩展的多种通信协议,广播环回发送
口,消息异步处理的框架,支持多 channel 机制和多优队列,支持压缩发送
服务层:
服务层是动整个 DCF 行的基础,提供程序运行所需要的各种基础服务,如:异步
调度、线程池服务、定时能力等
2 DCF 能做什么?
2.1 支持在线添加、删除节点,在线转让 Leader 能力
DCF 标准 multi-paxos 基础上,支持在线添加、删除节点,支持在线 leader 能力转让给其他
节点,广泛业务场景,构的生态。
2.2 支持优级选主和策略化多数派
策略化多数派:经典 Paxos 理论,多数派达成一致数据就可以提,而多数派是特定的,
并不能保证某个或某节点一定能整的数据,在实际应往往位置较近的节点
拥有强一致的数据,而位置较远的节点,一直处强一致的状态,在城市级容灾的
候无激活为主节点,设。策略化多数派能力,可以通过动态配置定某个或
节点必须保有强一致的数据,在出现容灾需求的时,可以立即激活为主节点。
级选主:可以定各个节点的优级,DCF 严格按照指定的优级选主,有在优
高的节点全部不可用时,才会激活的节点。
2.3 支持节点角色多
DCF 了可以提供经典的 LeaderFollowCandidate 角色,还可以提供定制化的角色,
Passive 角色(有日志,有数据,没有选举,不参与多数派投票),log 角色(有日志,没有
数据,没有选举,参与多数派投票),有了这些节点角色的支持,DCF 可以支持节点同
异步混合部署等多集群部署方式。
2.4 Batch & Pipeline
BatchDCF 支持多级 batch 作,主要包括:1)将多个日志合并成单个消息进行发送;2)将多
个日志合并写磁盘;3)将多个日志合并复制。Batch 可以有降低消息粒带来额外损耗
提升吞吐。
Pipeline:是在上一个消息返回,并发送下一个消息到对节点的机制,通过提高
发发送消息数量(Pipeline 数量),可以有降低延迟,提升性能DCF 在日志
化、网络发送、日志复制等多个阶段采纯异步方式,将 Pipeline 性能发挥至极致。
2.5 算法
BatchingPipelining 虽然能够提升系统整吞吐量和性能,但是过大 Batch 也容易成单求时
of 6
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜