简介:2022 年 4 月 1 号,PolarDB-X 正式开源 X -Paxos,基于原生 MySQL 存储节点,提供 Paxos 三正本共识协定,能够做到金融级数据库的高可用和容灾能力,做到 RPO= 0 的生产级别可用性,能够满足同城三机房、两地三核心等容灾架构。
架构简介
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/g…]
版本阐明
咱们也抉择了明天给大家一份诚意满满的礼物: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/…
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 生态的适配和兼容。
首先,PolarDB-X CDC 的 binlog 服务,与 canal、maxwell、debezium、Flink CDC 等开源 MySQL binlog 解析组件实现适配认证。其次,PolarDB-X CDC 新增 replica 服务,全面兼容 MySQL Replication 相干协定,通过 MySQL 的 start slave 指令,能够将 PolarDB- X 作为开源 MySQL 的备库实时同步数据。
04. 轻量化部署功能完善
PolarDB-X Operator 是一个基于 Kubernetes 的 PolarDB-X 集群管控零碎,心愿能在原生 Kubernetes 上提供残缺的生命周期治理能力,满足用户的轻量化部署。在 PolarDB-X 2.1.0 版本咱们进一步欠缺了局部运维能力,比方提供 Prometheus + Grafana 的监控零碎、欠缺分布式节点升降配、扩缩容、版本升级等能力。
更具体的 Features
- 新增 反对创立数据库指定建表模式(新的分区表模式与老的分库分表模式),默认是分库分表模式
- 新增 反对应用 MySQL 分区表语法 创立一级分区的分区表,分区策略包含 Hash/Range/List 等
- 新增 反对分区表的动静裁剪能力,包含反对分区列条件的常量折叠、区间合并以及前缀查问裁剪等性能
- 新增 反对分区表的 JOIN 计算下推
- 新增 提供分区表的分区治理能力,包含分区的增加、删除、决裂、合并与迁徙等性能
- 新增 提供表组及其他能力(包含表组的创立、删除、变更等),反对分区变更期间 JOIN 计算下推不受影响
- 新增 反对全局索引表应用 MySQL 分区表语法并按 Hash/Range/List 等分区策略进行分区
- 新增 主动拆分反对应用分区表语法
- 新增 拆分变更减少反对分区表
- 新增 新分区表 GSI 主动拆分会携带主键,能够解决 GSI 热点问题
- 新增 反对实例的缩容
- 新增 反对分区表的 TTL 及其治理能力(包含调整 TTL 的初始工夫与工夫距离等)
- 优化 Check Table 指令,反对校验主表分区、索引表分区与列定义等元数据一致性
- 新增 SQL Advisor 反对举荐播送表
- 新增 反对 Instant Add Column 性能
- 新增 反对 Explain Statistics 拉取优化器优化须要的所有信息
- 新增 限度 cbo 的搜寻空间,缩小简单查问的优化耗时
- 优化 局部 DDL 后盾操作的数据校验工作的性能,使 GSI/ 扩缩容 DDL 变更操作减速
- 新增 反对兼容 MySQL 的 Replica 相干指令
- 新增 反对存储节点 PAXOS 三节点集群
- 新增 Replica 组件,反对通过 change master … 语法的形式将 PolarDB- X 作为 MySQL Slave 来生产数据
- 全局 Binlog 中反对记录 Rows_query_event 类型数据,前置条件:需将 DN 节点 binlog_rows_query_log_events 参数设置为 On
- 新增 Flink CDC 接入
- 新增 CR PolarDBXMonitor 用来监控 PolarDBXCluster
- 新增 Helm Chart polardbx-monitor,蕴含定制化的 kube-prometheus 和预约义的 Dashboard 用来展现 PolarDB-X 集群监控信息
- PXD 工具反对单正本和三正本两种部署模式
ChangeLog 列表
[1] CN ChangeLog
[2] DN ChangeLog
[3] CDC ChangeLog
[4] Kube ChangeLog
原文链接
本文为阿里云原创内容,未经容许不得转载。