PolarDB-X 2.0 核心技术能力解读

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 希望通过本系列课程,让大家更深入了解PolarDB-X 2.0 核心技术能力,加深对PolarDB-X的理解与认识,最终可以实践到大家的工作当中。

本篇内容将从3个部分为读者介绍关于PolarDB-X 2.0 核心技术能力,希望可以让大家对PolarDB-X 2.0有更深入的了解,并可以将这些特性应用到项目中,达到降本提效的目的。


  • PolarDB-X 整体介绍
  • 分布式的技术挑战
  • 总结

 

今天的演讲分为三部分,首先介绍PolarDB-X 整体,其次是围绕分布式用户关注的问题来解读分布式技术在PolarDB-X 中怎么去解决,在上云的过程中如何做到业务兼容,最后做一个简单的总结。


一、PolarDB-X 整体介绍


(1) 云原生数据库架构演进概述

云原生数据库架构演进从传统单机数据库到PolarDB 云原生数据库及PolarDB-X 云原生分布式数据库。PolarDB-X是由阿里巴巴自主研发的云原生分布式数据库,融合分布式SQL引擎与分布式自研存储X-DB,基于云原生一体化架构设计,可支撑千万级并发规模及百PB级海量存储。


image.png

 

(2) PolarDB-X 产品特点


稳定与成熟:历经了各届天猫双11及阿里云各行业客户业务的考验。"去IOE"的目的绝不仅仅是摆脱几个传统IT厂商的产品,而是在互联网+、云计算快速兴起后,企业用户迫切需要能够保证其业务发展和创新的更加开放、灵活、高效的IT基础架构。概括地说,"去IOE"推动了用横向扩展取代纵向扩展,用开源软件代替商业软件的进程,可以看作是云计算的奠基之举。

分布式:解决数据库的线性扩展性。所有节点之间互相不共享资源,节点间通过网络进行通讯,无论是存储还是计算资源,只要添加机器就可以了,具有良好的可扩展性。

开源与生态:MySQL原生分布式数据库。阿里云及开源社区的多种生态工具对PolarDB-X持续提供不断完善的支持。PolarDB-X积极拥抱并努力回馈MySQL生态,目前已经形成对MySQL生态从协议、语法、事务行为、账号体系、安全到命令行工具的全方位兼容。


(3) PolarDB-X 技术架构


基于透明分布式理念提供了默认主键拆分策略、基于TSO和MVCC的高性能强一致分布式事务、基于一致性Hash分区策略的分布式线性扩展能力、全局一致性Binlog和全局一致性备份能力。数据节点(DN)采用阿里巴巴自研的基于X-Paxos的三副本强一致MySQL分支,确保在容灾过程中RPO=0。


image.png


元数据服务(Global Meta Service,GMS)提供全局授时服务(TSO)维护Table/Schema、Statistic等Meta信息维护账号、权限等安全信息

存储节点 (Date Node,DN)基于多数派Paxos共识协议的高可靠存储处理分布式MVCC事务的可见性判断

计算节点(Compute Node,CN)基于无状态的SQL引擎提供分布式路由和计算处理分布式事务的2PC协调、全局索引维护等

日志节点(Change Data Capture,CDC)提供兼容MySQL生态的binlog协议和数据格式提供兼容MySQL Replication主从复制的交互


(4) PolarDB-X ~ 组件


CN/DN组件

image.png

计算节点:经历多年实战磨练,MySQL语法高度兼容;完整的SQL解析层,实现精准算子下推;Serverless无状态,弹性能力对业务透明;提供HTAP 并行计算能力,应对混合负载场景。

数据节点:基于AliSQL内核,历经多年考验,稳定可靠;基于Paxos强一致协议,高可用能力进一步提升;全局MVCC改造,满足持金融级一致性要;RPC协议改造,提升节点间通讯性能。


CDC组件

image.png

CDC节点:EX:并行采集所有DN的变更日志;MR:分布式事务日志/DDL排序重组;DP:全局日志落盘并提供标准Binlog服务。

全局Binlog:兼容事务,分布式事务全局排序(例:基于TraceId、TSO信息对Binlog全局排序);兼容分布式DDL(例:可支持DDL同步到下游,比如ADB);兼容分布式扩缩容(例:屏蔽内部分片迁移、广播表、索引等数据干扰)

主备Replication:兼容MySQL生态的主备复制;兼容DTS的上下游生态。


(5) PolarDB-X 典型业务场景


1.交易订单及相关高并发场景

典型用户互联网电商、物流出行等特点数据量大/并发高相互联系较弱


2.海量数据集中存储,大表拆分+高并发


典型用户泛互联网、数字政府等特点集中式存储,数据单表过大有并发


3.MyCat/Sharding-JDBC/TiDB的用户


典型用户基于开源自建的MySQL生态特点有扩展性诉求、运维复杂性的痛点


4.有分布式改造诉求


典型用户架构转型的业务,金融、通讯等,其特点认可分布式方向,关注单机平滑演进


二、分布式的技术挑战


分布式的焦点问题有以下几点:


分布式下的数据一致性跨分片的分布式事务;主备数据的一致性;跨地域容灾 (RPO/RTO);数据备份和恢复 (PITR、Flashback)。

业务改造和生态适配:数据如何拆分和改造;分布式下的扩缩容;分布式的SQL兼容性;分布式运维能力 (DDL、慢SQL优化);数据库导入导出。

那么分布式是如何解决这些问题的呢?


(1) PolarDB-X 分布式事务


PolarDB-X通过引入中心授时节点(TSO),结合多版本并发控制(MVCC),确保读取到一致的快照,而不会读到事务的中间状态。如下图所示,提交事务时,计算节点(CN)执行事务时从TSO获取到时间戳,随着数据一同提交到存储节点(DN)多版本存储引擎上,CN通过读取快照时间戳去DN上读取相应版本的数据。


image.png


分布式事务的下游生态包括读写分离的一致性、全局变更日志CDC、备份恢复的一致性。


PolarDB-X是兼容MySQL生态的分布式数据库。通过集群内PolarDB-X的CDC组件,能够提供与MySQL binlog格式兼容的变更日志,并且对外隐藏掉集群扩缩容、分布式事务、全局索引等分布式特性,获得与单机MySQL数据库一致的使用体验。


image.png


一致性备份恢复提供实例级任意时间点(精确到秒级)的历史数据恢复能力。PolarDB-X的一致性备份恢复能力特点是针对数据全量恢复场景、可指定任意时间点进行一致性恢复、备份策略可定制、备份无需锁库。当前仅有备份期间不支持扩缩容、仅支持同构恢复两方面限制。


image.png


以上图为例,假设PolarDB-X实例配置为每周一、周二和周五的零点进行备份。某天,需要将数据恢复到上周日的 14:25:26,那么系统会选择离恢复点最近的一个全量备份集,上周五零点的全量备份,并从周五零点开始重放全局binlog,直到周日14:25:26结束,从而获得所需的一致性快照。

 

image.png


当PolarDB-X存储资源MySQL主实例的读请求较多、读压力比较大时,可以通过读写分离功能对读流量进行分流,减轻存储层的读压力。


(2) PolarDB-X 透明分布式


让用户以单机MySQL数据库使用体验,操作分布式数据库是PolarDB-X一贯追求的目标。为此PolarDB-X提供了简单易用的透明分布式能力:


默认主键拆分,让移植到PolarDB-X的数据和业务摆脱对设计“分区键”的依赖;

高性能强一致分布式事务,PolarDB-X采用自研X-Paxos协议,保证数据存储在故障切换过程中RPO=0的基础上,使用TSO策略和分布式的MVCC能力保证了分布式事务的隔离性和一致性。

分布式线性扩展,PolarDB-X基于一致性Hash的分区策略,有效的进行负载均衡和热点抑制,且在扩展过程中保持计算下推和数据一致性的同时实现业务零感知。并行和流控能力为扩展期间业务连续性提供了有力保障。

全局Binlog和全局一致性备份,分别解决分布式数据库各节点数据库向下游流转的难题及各节点备份时间差造成的恢复一致性问题。


(3) 分布式扩缩容


通过分裂与迁移,实现存储层自动负载均衡基于计算层透明的分片路由,屏蔽扩缩容对用户业务的影响


(4) 分布式 SQL 和 兼容性


兼容 MySQL SSL、Prepare、Load等传输协议兼容各种 DML、DAL、DDL、DCL等语法兼容MySQL各种类型和精度,比如时间和浮点数兼容MySQL Charset和Collation的大小写行为兼容MySQL 8.0的视图、CTE、窗口函数等兼容绝大部分 MySQL 函数,包含5.7 JSON兼容绝大部分 information_schema 视图兼容常用的 MySQL 客户端兼容MySQL复制协议,比如Binlog/Replication等


(5) 分布式 Online DDL


PolarDB-X引入了新的DDL执行引擎,开始支持DDL的任务管理,包括DDL执行过程中的任务状态查看、失败DDL任务的恢复和回滚等。

image.png


(6) 分布式慢SQL限流


在数据库会话或者慢日志中发现大量慢SQL,大量占用数据库资源,同时活跃会话数、CPU使用率、IOPS、内存使用率等监控指标一项或者多项处于高位。分析后发现这些慢SQL不属于核心业务,是优化不足的烂SQL,为保障核心业务的稳定运行,此时需要对其进行限流。限流规则精确限制的目标用户,比如限制某个IP的用户的行为指定要限制的SQL关键字 或 SQL模板,比如限制去参数化之后的一批慢SQL设置限流的规则,比如并发度、等待队列等


三、 总结


PolarDB-X MySQL原生分布式,原生提现在于可以让用户在现有的生态、机器、部署都可以充分利用,可以完全基于现有的生态去构建PolarDB-X。PolarDB-X 未来的目标是希望从单机的MySQL平滑演进到分布式,并提供公有云、专有云、软件版和DBStack多种部署形态满足不同行业客户的需求。


PolarDB-X 已全面拥抱开源,毫无保留地和全世界的社区共同成长,将高性能分布式数据库质量进一步提升,使用门槛尽可能降低。

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
2月前
|
存储 NoSQL 关系型数据库
非关系型数据库-MongoDB技术(二)
非关系型数据库-MongoDB技术(二)
|
2月前
|
NoSQL 关系型数据库 MongoDB
非关系型数据库-MongoDB技术(一)
非关系型数据库-MongoDB技术(一)
|
25天前
|
Cloud Native 关系型数据库 分布式数据库
|
1月前
|
关系型数据库 分布式数据库 数据库
PolarDB 开源:推动数据库技术新变革
在数字化时代,数据成为核心资产,数据库的性能和可靠性至关重要。阿里云的PolarDB作为新一代云原生数据库,凭借卓越性能和创新技术脱颖而出。其开源不仅让开发者深入了解内部架构,还促进了数据库生态共建,提升了稳定性与可靠性。PolarDB采用云原生架构,支持快速弹性扩展和高并发访问,具备强大的事务处理能力及数据一致性保证,并且与多种应用无缝兼容。开源PolarDB为国内数据库产业注入新活力,打破国外垄断,推动国产数据库崛起,降低企业成本与风险。未来,PolarDB将在生态建设中持续壮大,助力企业数字化转型。
85 2
|
2月前
|
Cloud Native 关系型数据库 分布式数据库
PolarDB开源项目未来展望:技术趋势与社区发展方向
【9月更文挑战第5天】随着云计算技术的发展,阿里云推出的云原生分布式数据库PolarDB受到广泛关注。本文探讨PolarDB的未来展望,包括云原生与容器化集成、HTAP及实时分析能力提升、智能化运维与自动化管理等技术趋势;并通过加强全球开源社区合作、拓展行业解决方案及完善开发者生态等措施推动社区发展,目标成为全球领先的云原生数据库之一,为企业提供高效、可靠的服务。
91 5
|
3月前
|
存储 缓存 负载均衡
【PolarDB-X 技术揭秘】Lizard B+tree:揭秘分布式数据库索引优化的终极奥秘!
【8月更文挑战第25天】PolarDB-X是阿里云的一款分布式数据库产品,其核心组件Lizard B+tree针对分布式环境优化,解决了传统B+tree面临的数据分片与跨节点查询等问题。Lizard B+tree通过一致性哈希实现数据分片,确保分布式一致性;智能分区实现了负载均衡;高效的搜索算法与缓存机制降低了查询延迟;副本机制确保了系统的高可用性。此外,PolarDB-X通过自适应分支因子、缓存优化、异步写入、数据压缩和智能分片等策略进一步提升了Lizard B+tree的性能,使其能够在分布式环境下提供高性能的索引服务。这些优化不仅提高了查询速度,还确保了系统的稳定性和可靠性。
90 5
|
3月前
|
存储 Oracle 关系型数据库
PolarDB-X 存储引擎核心技术 | Lizard B+tree 优化
PolarDB-X 分布式数据库,采用集中式和分布式一体化的架构,为了能够灵活应对混合负载业务,作为数据存储的 Data Node 节点采用了多种数据结构,其中使用行存的结构来提供在线事务处理能力,作为 100% 兼容 MySQL 生态的数据库,DN 在 InnoDB 的存储结构基础上,进行了深度优化,大幅提高了数据访问的效率。
7457 13
|
3月前
|
存储 SQL Cloud Native
揭秘!PolarDB-X存储引擎如何玩转“时间魔术”?Lizard多级闪回技术让你秒回数据“黄金时代”!
【8月更文挑战第25天】PolarDB-X是一款由阿里巴巴自主研发的云原生分布式数据库,以其高性能、高可用性和出色的可扩展性著称。其核心竞争力之一是Lizard存储引擎的多级闪回技术,能够提供高效的数据恢复与问题诊断能力。本文通过一个电商公司的案例展示了一级与二级闪回技术如何帮助快速恢复误删的大量订单数据,确保业务连续性不受影响。一级闪回通过维护最近时间段内历史数据版本链,支持任意时间点查询;而二级闪回则通过扩展数据保留时间并采用成本更低的存储方式,进一步增强了数据保护能力。多级闪回技术的应用显著提高了数据库的可靠性和灵活性,为企业数据安全保驾护航。
45 1
|
3月前
|
Cloud Native 数据库 开发者
云原生数据库2.0问题之帮助阿里云数据库加速技术更新如何解决
云原生数据库2.0问题之帮助阿里云数据库加速技术更新如何解决
|
3月前
|
Cloud Native 关系型数据库 分布式数据库
云原生数据库2.0问题之PolarDB利用云计算技术红利如何解决
云原生数据库2.0问题之PolarDB利用云计算技术红利如何解决

相关产品

  • 云原生分布式数据库 PolarDB-X
  • 云原生数据库 PolarDB