PolarDB-X 高可用存储服务:基于 X-Paxos 一致性协议

了解更多PolarDB-X 内容:
https://developer.aliyun.com/topic/polardbx_release

一、DN 高可用方案

在 PolarDB-X 的系统结构中,DN 组件负责数据存储。 一个 DN 节点是 一个 MySQL 实例。

为了数据安全,我们需要多副本,一个逻辑实例是由多个 DN 节点组成的集群。

为了业务连续,我们需要高可用,当部分机器或网络故障后集群依然能够持续提供服务。

这些能力都需要 DN 节点自闭环完成,如果再引入第三方组件来管理,那么第三方组件的高可用又将是新的问题。

单机 MySQL,或者其他数据库,常用的高可用方案有以下几种:

第一种是经典的一主一从结构,基于 KeepAlive 进行 HA 管理;

第二种具有更高的可靠性,可以一主多从,用更复杂的节点管理器协调系统的运行;

另外还有 MySQL 社区的多主复制,有基于共享存储的部署模式等。

以上解决方案都有其各自适合的应用场景,但在设计上,需要考虑的问题是类似地,那就是:

理论上 CAP 中的分区可用性和数据一致性如何取舍?

工程上实现的复杂度、稳定性以及高可用对性能带来的损耗有多少?

PolarDB-X 的 DN 存储集群采用了强一致方案,集群通过 X-Paxos 一致性协议进行数据复制。其特点是:

1) 在有 2n+1 节点的集群中可容忍最多 N 个节点故障; 2) 节点间数据强一致,对应用而言,RPO=0 内置了一致性协议; 3) 隐藏了复杂的节点管理逻辑。

所以,此方案的核心是一致性协议的使用。

二、X-Paxos 协议

X-Paxos 是 Paxos 协议的具体实现,基于多数派理论保证数据一致性,其理论基础是经典的 Paxos 论文。

当协议正常运转时,集群中有一个 Leader 节点,其他为 Follower 节点。业务请求从 Leader 进入,Leader 将请求转化为一条增量日志并将日志广播到所有 Follower;等多数节点确认收到日志后,Leader 将日志应用到状态机,返回业务响应。过程中只要多数节点健康,协议就能正常运行,且能够保证集群数据的强一致。另外,在协议模型中还有 learner 角色,它不参与多数派决策,只是集群数据的订阅者。

协议的关键算法有两部分,首先是选主,选主是一个共识的过程,保证集群中同时只有一个 Leader 并且 Leader 已拥有达成多数派的所有日志;其次,日志复制,即上图中的运转过程。

Paxos 是分布式协议,是消息或事件驱动的异步处理模型。X-Paxos 测试协议组件有四个模块:网络层提供基础的异步网络通讯框架;算法模块实现协议的业务逻辑,包括选主、日志复制、源数据管理等;服务层是调度中心,负责响应定时器和网络事件,驱动算法模块的运转;日志处理本属于算法范畴,但 X-Paxos 实现时将日志处理逻辑抽象出通用接口,在算法模块调用接口,使日志的具体实现可以在日志模块完成,并且可以单独优化。

三、DN 高可用体系

MySQL 是多引擎架构,事务提交分为两阶段,第一阶段为引擎 Prepare, 第二阶段进入 Binlog Ordered Commit。

Ordered Commit 为分组提交,又分为三个过程:Flush 将 Binlog 内容写到 Binlog 文件,Sync 将 Binlog 文件内容持久化,Commit 是引擎提交。

引入一致性协议后,Leader节点上,在 Binlog 的 Flush 和 Sync 过程中将 Binlog 内容同时广播到所有 Follower。多数派达成后,Leader 再发起最后的引擎 Commit ,以保证数据的强一致。

因为集群中只有 Leader 提供服务,所以 Leader 的状态对系统可用性至关重要。

Leader 任期内,所有 Follower 都不再发起选主请求,也不投票其他节点的选主请求。但是任期过后,如果 Follower 发现 Leader 已经异常,将重新发起选主;如果 Leader 发现自己和多数 Follower 的通信异常,将自动降级,发起选主请求。

大部分情况下,集群各节点的状态都正常,Leader节点的主动心跳会保持他的 Leader 地位,集群不会发生 HA 。

默认情况下,集群内所有节点都公平选主。当希望某些节点优先对外提供服务,可以对这些节点赋予更高的选主权重。权重高的节点当选 Leader 的几率大,但这是弱限制,不保证绝对按权重选主。因为选主最基本的原则还是节点需要拥有集群中已经达成共识的所有数据,这是绝对限制。

DN 集群节点间同步的数据是 Binlog ,当新主被选出后,需要完成两个步骤才能对外提供读写服务:一是将日志同步给其他落后的 Follower 节点,二是将本节点 Binlog 应用到最新位点。如果需要应用的 Binlog 很多, Leader 将迟迟无法对外提供服务,从而影响系统可用性。此时 Leader 会探测其他 Follower 节点,如果发现更合适的,则会将 Leader 角色让出。

定义集群是否可用,最终还要看当前 Leader 能否够提供业务服务。有时候从协议层面看,集群是健康的,但是 Leader 节点的业务服务异常,比如磁盘满,则此时集群不可用。因此 Follower 节点会定期向 Leader 发起反向心跳,用于检测 Leader 的业务服务是否正常,如果不正常则重新选主。

四、DN部署和优化

上图为最常用的部署模式,三个节点参与集群决策,一个或多个 Learner 作为订阅者提供只读服务。此处 Logger 不是一种新角色,在协议层面,它就是 Follower ,但它不回放 Binlog ,仅保留 Binlog ,用于整个集群数据的强一致,能够减少一份 MySQL 实例的数据空间,降低存储成本。

同城 3 副本部署模式实现了三个可用区各一个节点,两个实体节点, 一个Logger 节点,相比传统的主备模式,基本不增加存储成本,但是可以实现数据的强一致。

跨城 5 副本模式下,有了更多节点后,可以实现单 Region 不可用的容灾,同时配合权重选主可以定制 Region 的切换顺序。

以上就是是关于PolarDB-X 高可用存储服务的整体介绍。

原文链接

本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510787.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

奋战开源操作系统二十年:为什么编程语言是突破口?

【编者按】编程语言之于操作系统,意味着什么?本文作者飞漫软件创始人魏永明经过二十余年的操作系统开发探索,明确提出编程语言是自主基础软件,尤其是操作系统的重要抓手。如果说操作系统是基础软件生态里的皇冠,那编程…

一站式智能运维解决方案,企业系统的隐形守护者

时有爆发的疫情,加速引导着用户观影方式的改变。越来越多的用户习惯将观影模式从线下转移到线下。 疫情作为电影行业的“黑天鹅”,让线下影院陷入沉寂,但是却让网络视频平台焕发新生。多家视频平台公布了2022财年Q4的财报,其用户…

事务、全局索引、透明分布式,再见,分区健

事务、全局索引、透明分布式 再见,分区健! ——陈默(墨城)阿里云数据库技术专家 了解更多PolarDB-X 内容: https://developer.aliyun.com/topic/polardbx_release 在刚刚发布的PolarDB-X 2.1.0版本中,开…

坚不可摧!腾讯安全设三道防线,一站式护航云上安全

数字经济时代催生了企业的“云”化发展,随着业务规模的迅速扩大,混合云和多云的部署日益增多,随之而来的各类漏洞和威胁让企业的安全防护门槛和复杂度越来越高。 据腾讯安全发布的《2021年度公有云安全报告》显示,2021年腾讯安全…

好的 MySQL 兼容性可以做到什么程度? PolarDB-X 如何做生态兼容

好的 MySQL 兼容性可以做到什么程度 PolarDB-X 如何做生态兼容 ——吴学强(燧木)阿里云数据库高级技术专家 了解更多PolarDB-X 内容: https://developer.aliyun.com/topic/polardbx_release 众所周知,数据库是基础的软件系统&…

如何「场景化」的企业上云

随着“十四五”规划正式提出“以混合云为重点培育行业解决方案、系统集成、运维管理等云服务行业”,混合云成为产业内众多服务商和企业关注的重点。自混合云概念出现以来,已有超过十年的历史。初期的混合云基本只是云环境之间的简单连接,其能…

Serverless JOB | 传统任务新变革

Job 作为一种运完即停的负载类型,在企业级开发中承载着丰富的使用场景。SAE Job 将 Serverless 技术所带来的普惠红利从应用领域向外延展至任务领域,通过结合 longrun shortrun 的使用场景和最佳实践打造成为 Serverless 一体化企业级开发运维平台&…

最全!即学即会 Serverless Devs 基础入门(上)

在上篇《即学即会 Serverless | 如何解决 Serverless 应用开发部署的难题》中,我们阐述了工具链的重要性,那么本文将带领各位快速实现 Serverless Devs 入门。 安装工具 第一步:请先安装 Node.js(>10.8.0) 与 NPM 包管理工具&#xff1b…

阿里云ODPS入选2022世界互联网领先科技成果

11月9日,2022年世界互联网领先科技成果发布活动在世界互联网大会乌镇峰会期间举办,评选出具有国际代表性的年度领先科技成果,由阿里云自主研发的大数据智能计算平台ODPS入选。ODPS解决了超大规模多场景融合下,用户多元化数据的计算需求问题&a…

最全!即学即会 Serverless Devs 基础入门(下)

在上篇《最全!即学即会 Serverless Devs 基础入门》中,我们阐述了工具链的重要性,并对安装方式 & 密钥配置进行了讲解。但是在 Serverless Devs 的规定中,一个 Yaml 可以被认为是一个 Serverless 应用,因此本文将继…

全球创见者共话企业韧性 金蝶“数字员工”惊艳亮相

11月11日,由云南省昆明市人民政府、云南省工信厅指导,金蝶集团主办的“2022全球创见者大会”成功举办。大会以“数治企业 韧性成长”为主题,求索不确定时代,如何以“数”治企,用EBC治理和管理企业,实现韧性…

开箱即用!Linux 内核首个原生支持,让你的容器体验飞起来!

容器化是最近几年 DevOps 界流行的趋势,通过业务的容器化我们将创建一个完全打包、自包含的计算环境,让软件开发人员能够更加快速地创建和部署自己的应用程序。然而长期以来,由于镜像格式的限制,容器启动镜像的加载是很慢的&#…

专访快准车服CIO牛小虎:全面信息化支持,让车爱上快准

一、紧跟创业浪潮,年轻的快准团队走在前列 1999年11月,第五届中国国际电源展览会和第二届中国电子变压器展览会在广州成功举办,近150家企业的电源及电子变压器产品争相亮相,这样中国电源产业看到了广阔的前景与市场空间。 电源产…

元宇宙照进现实 金蝶联手科大讯飞发布“数字员工”

“金小蝶,请帮我查一下这个项目资金占用的情况。” 企业管理者话音刚落,包括损益分析、回款分析、资金占用分析等详尽的数据结果便已呈现在其眼前,同时还针对资金异常情况给出了风险评估。在一问一答中,销售总监得到了一个得力的“…

《阿里云代码安全白皮书》5个维度应对3类代码安全问题

摘要:在互联网快速发展的时代,代码是企业最核心的资产,代码安全也是企业资产安全最重要部分;为了保护企业代码安全,各公司使出的手段也是五花八门。阿里云云效联合阿里云的代码安全能力从基础安全、备份与恢复、安全与…

优化搜索排序结果从而“ 提升CTR、CVR业务指标”

案例背景 某导购类电商APP,与淘宝天猫等一线商家合作,亿级商品索引量,类目和子类目多层嵌套,商品有不同子款式和尺码,搜索和筛选需求复杂。通过采用分销券模式,优惠券帮助普通C用户降低了单品价格,分销模式…

阿里CTO程立:首个全面深度用云的天猫双11,更敏捷、更经济、更绿色

“一个全面深度用云的时代正在到来。”在2022天猫双11技术分享中,阿里CTO程立表示,历经双11大规模场景的淬炼,阿里巴巴将云的先进性转变为技术效能的提升,今年阿里整体单位算力成本下降8%,全面用云带来了业务的敏捷创新…

详解异步任务:函数计算的任务触发去重​

前言 无论是在大数据处理领域,还是在消息处理领域,任务系统都有一个很关键的能力 - 任务触发去重的保障。这个能力对于一些准确性要求极高的场景中(如金融等)是必不可少的。作为 Serverless 化任务处理平台,Serverles…

阿里云混合云建管用一体化探索实践 助力政企从容应对数字化转型难题

随着十四五规划强调打造数字经济新优势,将云计算列为数字经济重点产业,明确了以混合云为重点的云服务产业发展路线:“以混合云为重点培育行业解决方案、系统集成、运维管理等云服务行业”,混合云成为产业内众多服务商和政企客户关…

蚂蚁集团升级“绿色计算”,双11期间减排效果同比增长140%

“双11”正在全面进入“晚八点”时代,顺滑体验得力于保障技术的升级。 今年双11期间,蚂蚁集团通过应用“绿色计算”技术体系,有效提高算力、降低服务器需求压力。经中环联合认证中心(CEC)测算,在2022年双1…