PolarDB-X:云原生分布式数据库演进方向

简介: PolarDB-X旨在解决数据库用户的弹性伸缩、高可用等问题,并尽可能减少用户的迁移改造代价和使用成本。本篇主要介绍数据库的发展历程,PolarDB-X云原生分布式数据库的技术架构和核心性能。

PolarDB-X:云原生分布式数据库演进方向

image.png

 

分享人:黄贵,阿里云数据库首席架构师,阿里云数据库分布式系统、分布式数据库内核的研发工程师。

 

正文:

 

一、技术趋势:云计算加速数据库系统演进

 

1. 数据库的发展历程

 image.png


在近半个世纪的数据库发展历程中,数据库的发展主要有两个方向:

 

a. 分布式技术

 

  • 数据规模越来越大,包括吞吐量、事务请求等,数据价值的挖掘需要分布式并行技术;
  • 数据类型越来越丰富,从关系型数据到非结构化数据,需要处理关系型数据和非结构化数据的融合分析;

 

b. 云原生技术

 

  • 利用云的基础设施、云资源池,进行运算与存储的解耦、弹性伸缩,更好的匹配业务的发展。

 

云原生和分布式为数据库的技术带来了变化,甚至是重塑了数据库的发展方向。

 

2. 云原生

 

云原生是未来使用云的标准方式。云原生资源无需预留,取之不尽、用之不竭。用户在需要时购买即可使用,不用关心云资源在哪里,以及它背后的逻辑。

 

 

image.png

 

3. 阿里云数据库

 

阿里云数据库是一个一站式、全链路数据管理与服务。

 image.png


在阿里云业务全景图中可以看到,阿里云数据库业务涵盖以下内容:

 

  • 开放生态:包括分销生态、ISV被集成生态、服务生态、开发者生态等;
  • 行业应用:包括新零售、城市大脑、政府事务、金融、医疗健康、制造、能源、电信、教育等;
  • 全场景解决方案:包括泛互联网、数字政府、新金融、工业互联网/物联网等;
  • 一站式数据管理:这是支撑上述解决方案的阿里云的数据服务产品,覆盖从数据生产,到数据处理、存储,到数据分析和发现,到数据开发和管理全链路流程。

 

二、PolarDB 云原生数据库

 

1. PolarDB产品系列介绍

 

PolarDB是阿里巴巴新一代云原生关系型数据库,有三个主要产品:

 

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

 

  • PolarDB分布式版本
  • 融合分布式SQL引擎与分布式自研存储
  • 面向海量数据存储、超高并发吞吐,复杂计算与分析

 

b. PolarDB-PG 云原生关系型数据库

 

  • 100%兼容PostgreSQL数据库,高度兼容ORACLE语法
  • 基于分布式架构和普通PC服务器,提供与商用数据库相当的能力
  • 具备高可用、高可靠、线性扩展、低成本、高性能等核心技术优势

 

c. PolarDB-M云原生关系型数据库

 

  • 阿里巴巴自研的新一代云原生关系型数据库
  • 存储、计算分离架构,软硬件结合
  • 极致弹性、高性能、海量存储(100TB)、安全可靠
  • 100%兼容MySQL56/5.7/8.0

 

2. PolarDB-X:云原生分布式数据库

 

PolarDB-X完全兼容MySQL生态的云原生分布式数据库,同时支持在线事务处理与在线分析处理(HTAP),具备金融级数据高可用、分布式一致性以及极致弹性等能力的企业级数据库。

 

PolarDB-X的发展历史可以追溯到10年前:

 

a. 2009年,阿里集团根据自身业务发展需求提出去IOE,并推出新产品TDDL(Taobao Distributed Data Layer),开创了分布式数据库中间件+开源数据库应用在高并发交易系统的先河;

b. 之后,阿里云将TDDL集成为DRDS(Distributed Relational Database Service)服务,并在2017年将其商业化,成为国内最早的分布式服务的商业化产品;

c. 2020年,阿里云将DRDS演进成一体云原生分布式数据库PolarDB-X 2.0;

 

发展至今,PolarDB-X历经10余次阿里巴巴天猫“双十一”考验,支持8.7千万TPS峰值,拥有线下用户700多家,部署规模超过10000台。

image.png

3. 分布式数据库解决的核心问题

 

分布式数据库解决的核心问题主要体现在三个方面:

 

a. 用户透明

 

  • 如何提供无限接近单机的使用体验
  • 如何减少应用的侵入性
  • 是否兼容已有生态,降低整体持有成本

 

b. 业务连续性

 

  • 如何提供与单机一致的RPO能力
  • 多副本数据如何保证分布式一致
  • 是否提供异地容灾多活能力抵御机房级故障

 

c. 一致性保障

 

  • 跨节点事务如何保证一致
  • 如何应对更复杂的批量或查询场景
  • 上下游的一致性如何保证(数据同步、备份恢复)

 

总而言之,用户希望分布式数据库像单机数据库一样易操作,同时要具备单机数据库所没有的扩展能力。

 

4. PolarDB-X技术架构

 image.png

PolarDB-X的组件包括:

 

a. 元数据服务(Global Meta Service,GMS)

 

  • 提供全局授时服务(TSO);
  • 维护Table/Schema,Statistic等Meta信息;
  • 维护账号、权限等安全信息;

 

b. 存储节点(DateNode.DN)

 

  • 基于多数派Paxos共识协议的高可靠存储;
  • 处理分布式MVCC事务的可见性判断;

 

c. 计算节点(ComputeNode,CN)


  • 基于无状态的SQL引擎提供分布式路由和计算;
  • 处理分布式事务的2PC协调,全局索引维护等;

 

d. 日志节点(Change Data CaptureCDC)

 

  • 提供兼容MySQL生态的binlog协议和数据格式;
  • 提供兼容MySQLReplication主从复制的交互;

 

PolarDB-X是一个计算存储分离的架构,旨在最大限度地发挥其云数据库的弹性扩展能力。PolarDB-X计算层是一个无状态的集群,可以任意增减节点,每一个节点都拥有完整的计算能力,可以实时无缝扩展计算能力,也可以独立扩展存储能力。

 

三、PolarDB-X的核心性能

 

1. 透明分布式

 

a. 自动分区

 

透明分布式能力让用户以使用单机MySQL数据库的体验操作分布式数据库,其默认主键分区(一致性hash)和全局索引。

 

AUTO模式数据库

 

AUTO模式数据库(也称为自动分区数据库),支持自动分区,即创建表时无需指定分区键,数据即可自动在集群内均匀分布;同时也支持使用标准的MySQL分区表语法,对表进行手动分区。可以便捷地享受到分布式数据库的透明式分布、弹性伸缩和分区管理等诸多红利。

 

建库语法:

 

CREATE DATABASE auto_db MODE='AUTO';

USE auto_bd;

 

建表语句与MySQL一致,无需指定分区键:

 

# 典型的电商交易场景

create table orders(

id bigint,

buyer_id varchar comment '买家',

seller_id varchar comment '卖家',

primary key(id),

index sdx(seller_id),

index bdx(buyer_id)

)

 

说明:

 

  • 一个Table由若干索引数据(Primary Index与Secondary Index)构成;
  • PrimaryKey是索引组织表(Clustered Index包含行数据),索引均支持数据分片;
  • 默认分区算法为一致性Hash,也可以根据业务变化进行调整,让数据分布更适合业务场景。

 

image.png

 

b. 数据自动负载均衡

 

数据自动均衡分布到各个存储节点上。


image.png

 

2. 集中分布式一体化

 

为了实现用户从集中式数据库到分布式数据库的平滑演进,阿里云提供了集中分布式一体化的能力。

 

a. 单机到分布式的平滑演进(下图左)

 

  • 单机演进基于Online DDL可动态完成单机大表切换为数据分片模式
  • 拆分演进基于Online DDL可动态对分片规则进行调整,比如拆分列
  • 单机兼容基于分布式事务、SQL路由、CDC技术屏蔽对业务影响

 

b. 在线扩缩容(下图右)

 

  • CN节点无状态,可轻量化添加,需要同步变更vip并通知所有CN节点
  • DN节点有状态,扩缩容需要做不停机的数据迁移(全量+增量)
  • 性能和容量最大可支持1024节点,单节点最大5TB

 

image.png

 

3. 分布式事务

 

a. 分布式事务是屏蔽差异的基础

 

分布式数据库的最大问题,是需要保障数据跨节点时事务ACID的语义无差异,以及由此引发的问题,分布式事务是分布式数据库处理的基石。

 

保障事务ACID,实现事务的隔离级别以及全局二级索引;

实现备份恢复PITR、库表级恢复、分布式备份、flashback等;

确保数据导入导出在一个完整的数据快照上,避免用户读取不完整的数据。

 

image.png

 

b. 分布式事务机制(TSO + MVCC)

 

PolarDB-X使用TSO+MVCC多版本并发控制的机制实现分布式事务,通过引入中心授时服务(TSO),结合多版本并发控制(MVCC),保证跨节点读取到的数据版本一定是一致,而不会读到一个事务的部分数据

如下图所示,提交事务时,计算节点(CN)执行事务时从TSO 获取到时间戳,随着数据一同提交到存储节点(DN)多版本存储引擎上。读取时,如果查询操作的数据涉及多个分区,PolarDB-X首先会获取全局时钟作为读取版本,对每行数据的MVCC多版本进行可见性判断,确保读到全局一致的数据版本。

 

image.png

 

4. 分布式Online DDL

 

分布式数据库进行DDL操作,通常会遇到由于数据量大导致数据迁移耗时过长,以及分布式系统可能带来的一系列异常问题,如节点的失效、稳定性挑战。因此,运维人员在分布式数据库进行DDL操作都会非常谨慎。

 

PolarDB-X提供了强大的数据迁移框架,确保在业务正常运转的过程中进行DDL操作。

 

Online DDL支持类型包括:

 

a. 索引维护

 

  • CREATE INDEX idx1 ON t1(name)
  • CREATE CLUSTERED INDEX idx1 ON t1(name)

 

b. 分区算法变更

 

  • ALTER TABLE t1 PARTITION BYHASH (name)
  • ALTER TABLE t1 PARTITION BYHASH (name) PARTITIONS 32
  • ALTER TABLE t1 BROADCAST
  • ALTER TABLE t1 PARTITION BY RANGE (id)

 

c. 更多的INSTANT DDL

 

  • INSTANT DDL即无需接触数据,只更改源数据,实现毫秒级操作,进一步减少运维负担;
  • 任意位置加列ALTER TABLE t1 ADD COLUMN
  • 扩大列的数据类型

 

参考:https:/help.aliyun.com/document_detail/402314.html/

 

5. 云原生与分布式技术融合

 

云原生资源解耦池化和分布式水平扩展的能力,可提供资源的独立弹性,是云数据发展必然方向。

 

如下图所示,将存储服务池与持久化存储进一步分离,形成两层计算存储层,在存储服务池提供多版本数据页读取服务,在计算服务池进行数据计算、分布式计划执行、数据汇总等,进一步提升数据库弹性的粒度,实现实时、秒级弹性,以及细粒度的弹性。

image.png

6. 多租户共用资源池

 

为减少使用成本,尤其对于SAAS用户来说,对于数据库支持多租户有强烈的需求,用户需要资源隔离,以实现独享数据库体验。

 

PolarDB-X多租户共用资源池可以很好的满足这一需求。

 

  • 一层租户(餐饮SAAS租户为餐厅)支持热点散列;
  • 二层租户(电商SAAS,一层为电商平台,二层为用户),支持热点散列;
  • 政务系统,支持省地市的多租户分模式,权责分离;
  • 支持跨租户的数据查询,以及数据回流;

 

image.png

 

7. 一个系统中处理混合负载

 

关键点:提供HTAP的统一接入点,在满足强一致、强隔离基础上,同时支持TP事务型负载和AP分析型负载请求。

 

PolarDB-X是一款支持HTAP(Hybrid Transaction/Analytical Processing)的数据库,在支持高并发、事务性请求的同时,也对分析型的复杂查询提供了良好的支持。

 

优势:

 

  • 强隔离、强一致的混合负载(TP请求不会因为日志复制而产生延迟)
  • 分布式并行计算(AP查询可满足线性扩展能力)

 

 

image.png

 

四、PolarDB-X基于K8S operator的轻量化管控系统

 

PolarDB-X基于K8S operator推出了轻量化管控系统,旨在原生 Kubernetes 上提供完整的生命周期管理能力,满足用户的轻量化部署。PolarDB-X Operator包括集群创建、集群升级、运维监控等一系列管控系统,同时集成了开源生态Prometheus、Loki、Grafana等。

 

image.png

 

  • 监控数据大盘对系统运行了如指掌

 

PolarDB-X Operator的监控系统数据大盘可以全面监控数据库运行状态,以便进行实时健康状态检查。

 image.png

 

  • 大规模云数据库的智能化运维

 

智能化运维的6大核心自治特性

 

  • 实时异常检测
  • 故障自愈
  • SQL优化
  • 智能调参:根据当前的业务负载,智能匹配业务参数;
  • 自动弹性:根据业务预测负载预测进行实时弹性,实现最佳性价比;
  • 6智能压测

 image.png


 

 

相关文章
|
8月前
|
关系型数据库 分布式数据库 数据库
|
8月前
|
存储 关系型数据库 分布式数据库
喜报|阿里云PolarDB数据库(分布式版)荣获国内首台(套)产品奖项
阿里云PolarDB数据库管理软件(分布式版)荣获「2024年度国内首版次软件」称号,并跻身《2024年度浙江省首台(套)推广应用典型案例》。
|
6月前
|
Cloud Native 关系型数据库 MySQL
免费体验!高效实现自建 MySQL 数据库平滑迁移至 PolarDB-X
PolarDB-X 是阿里云推出的云原生分布式数据库,支持PB级存储扩展、高并发访问与数据强一致,助力企业实现MySQL平滑迁移。现已开放免费体验,点击即享高效、稳定的数据库升级方案。
免费体验!高效实现自建 MySQL 数据库平滑迁移至 PolarDB-X
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。
|
9月前
|
存储 监控 关系型数据库
突破IO瓶颈:PolarDB分布式并行查询(Parallel Query)深度调优手册
在海量数据处理中,I/O瓶颈严重制约数据库性能。本文基于PolarDB MySQL 8.0.32版本,深入解析分布式并行查询技术如何提升CPU利用率至86.7%、IO吞吐达8.5GB/s,并结合20+实战案例,系统讲解并行架构、执行计划优化、资源调优与故障排查方法,助力实现高性能数据分析。
362 6
|
11月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
|
容灾 关系型数据库 分布式数据库
PolarDB分布式版:与云融合的分布式数据库发展新阶段
PolarDB分布式版标志着分布式数据库与云融合的新阶段。它经历了三个发展阶段:从简单的分布式中间件,到一体化分布式架构,再到云原生分布式数据库。PolarDB充分利用云资源的弹性、高性价比、高可用性和隔离能力,解决了大规模数据扩展性问题,并支持多租户场景和复杂事务处理。零售中台的建设背景包括国家数字化转型战略及解决信息孤岛问题,采用分布式数据库提升高可用性和性能,满足海量订单处理需求。展望未来,零售中台将重点提升容灾能力、优化资源利用并引入AI技术,以实现更智能的服务和更高的业务连续性。
451 9
|
存储 关系型数据库 分布式数据库
[PolarDB实操课] 01.PolarDB分布式版架构介绍
《PolarDB实操课》之“PolarDB分布式版架构介绍”由阿里云架构师王江颖主讲。课程涵盖PolarDB-X的分布式架构、典型业务场景(如实时交易、海量数据存储等)、分布式焦点问题(如业务连续性、一致性保障等)及技术架构详解。PolarDB-X基于Share-Nothing架构,支持HTAP能力,具备高可用性和容错性,适用于多种分布式改造和迁移场景。课程链接:[https://developer.aliyun.com/live/253957](https://developer.aliyun.com/live/253957)。更多内容可访问阿里云培训中心。
325 0
[PolarDB实操课] 01.PolarDB分布式版架构介绍
|
关系型数据库 分布式数据库 PolarDB
[PolarDB实操课] 02.使用云起实验室资源快速体验PolarDB分布式版
本次课程由阿里云PolarDB开源架构师黄心雨分享,重点介绍如何使用云起实验室资源快速体验PolarDB分布式版。主要内容包括: 1. **PolarDB-X的四种安装方法**:Docker、PXD工具、Kubernetes和源码编译。 2. **容器技术简介**:解释容器在云原生环境中的作用,解决代码跨环境迁移问题。 3. **云起实验室实操**:通过云起实验室提供的零门槛平台,快速部署PolarDB-X,体验其主要功能。 4. **课程小结**:总结PolarDB-X的安装方式及实际操作步骤,并展望后续课程内容。
192 0
|
7月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
519 2

相关产品

  • 云原生数据库 PolarDB