MySQL|PolarDB-X 发布 2.1.0 版本,Paxos 重磅开源

MySQL|PolarDB-X 发布 2.1.0 版本,Paxos 重磅开源

文章图片

MySQL|PolarDB-X 发布 2.1.0 版本,Paxos 重磅开源

文章图片


架构简介 PolarDB-X 采用 Shared-nothing 与存储分离计算架构进行设计 , 系统由4个核心组件组成 。

计算节点(CN Compute Node)计算节点是系统的入口 , 采用无状态设计 , 包括 SQL 解析器、优化器、执行器等模块 。 负责数据分布式路由、计算及动态调度 , 负责分布式事务 2PC 协调、全局二级索引维护等 , 同时提供 SQL 限流、三权分立等企业级特性 。存储节点(DN Data Node)存储节点负责数据的持久化 , 基于多数派 Paxos 协议提供数据高可靠、强一致保障 , 同时通过 MVCC 维护分布式事务可见性 。元数据服务(GMS Global Meta Service)元数据服务负责维护全局强一致的 Table/Schema Statistics 等系统 Meta 信息 , 维护账号、权限等安全信息 , 同时提供全局授时服务(即 TSO) 。日志节点(CDC Change Data Capture)日志节点提供完全兼容 MySQL Binlog 格式和协议的增量订阅能力 , 提供兼容 MySQL Replication 协议的主从复制能力 。开源地址:[https://github.com/ApsaraDB/galaxysql

版本说明 我们也选择了今天给大家一份诚意满满的礼物:PolarDB-X 正式发布2.1.0版本本次开源包含四大核心特性 , 全面提升 PolarDB-X 稳定性和生态兼容性
01. 高可用的开源能力补齐 分布式一致性算法(Consensus Algorithm )是一个分布式计算领域的基础性问题 , 其最基本的功能是为了在多个进程之间对某个(某些) 值达成一致(强一致) , 进而解决分布式系统的可用性能问(高可用) , 近几年NewSQL和云原生数据库的不断兴起 , 极大的推动了关系数据库和一致性协议的结合 , 常见的技术有Paxos和Raft 。
2022年4月1号 , PolarDB-X 正式开源X-Paxos , 基于原生MySQL存储节点 , 提供Paxos三副本共识协议 , 可以做到金融级数据库的高可用和容灾能力 , 做到RPO=0的生产级别可用性 , 可以满足同城三机房、两地三中心等容灾架构 。
Paxos协议对于面向云的架构是非常必要的 , 云的本质是虚拟化和资源池化 , 节点的变化和弹性是一个常规操作 , 我们需要解决面向用户透明运维的能力 , 任何情况下数据都不能丢、不能错 。
下面一个例子演示基于kubernetes(k8s)虚拟化 , 结合Paxos的高可用切换提供RPO=0
此处为语雀视频卡片 , 点击链接查看:https://www.zhihu.com/zvideo/1390619299292295170
02. 分布式水平扩展能力升级 PolarDB-X 作为一款基于MySQL原生分布式 , 除了提供基于Paxos RPO=0的金融级容灾能力外 , 最重要的特性就是分布式的水平扩展 , 在PolarDB-X 2.1.0版本正式推出新版数据分区表 , 提供Auto分区模式 。
Auto模式的数据库支持自动分区 , 即创建表时无需指定分区键 , 数据即可自动在集群内均匀分布;同时也支持使用标准的MySQL分区表语法 , 对表进行手动分区 。 结合新版分区表能力 , 新增支持热点分裂、TTL(Time To Live)分区、Locality亲和性调度等能力 , 可以让您便捷地享受到分布式数据库的透明式分布、弹性伸缩和分区管理等诸多红利 。
具体细节可参考文档:AUTO模式数据库
基于新版分区表 , 可扩展提供分布式热力分析能力 , 样例效果图

03. MySQL生态适配加速 PolarDB-X 架构中有一个特殊的CDC(Change Data Capture)组件 , 其主要用于提供分布式的增量日志获取 , 作为MySQL原生分布式 , 对应分布式CDC在设计上也选择全面兼容MySQL Binlog , 在PolarDB-X 2.1.0版本我们又进一步完善了与MySQL现有CDC生态的适配和兼容 。