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

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 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


 

 

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
3月前
|
存储 关系型数据库 分布式数据库
揭秘PolarDB:中国云原生数据库的超级英雄,如何颠覆传统数据存储?
在数字化时代,数据成为企业的核心资产,而云原生数据库则是推动企业转型的关键。PolarDB凭借其先进的存储计算分离架构,在性能、可靠性和易用性方面脱颖而出,成为国内领先的选择。它支持多种数据库引擎,提供多副本存储机制,并采用按量付费模式,有效降低管理和成本压力,助力企业实现高效、可靠的数字化转型。
74 1
|
3月前
|
人工智能 Kubernetes Cloud Native
深度对话 解锁阿里云分布式云原生技术落地新姿势
深度对话 解锁阿里云分布式云原生技术落地新姿势
深度对话 解锁阿里云分布式云原生技术落地新姿势
|
4月前
|
运维 安全 Cloud Native
核心系统转型问题之保障云原生分布式转型中的基础设施和应用层面如何解决
核心系统转型问题之保障云原生分布式转型中的基础设施和应用层面如何解决
|
4月前
|
监控 Cloud Native 容灾
核心系统转型问题之API网关在云原生分布式核心系统中的功能如何解决
核心系统转型问题之API网关在云原生分布式核心系统中的功能如何解决
|
4月前
|
运维 Cloud Native 安全
核心系统转型问题之确保核心系统云原生分布式转型的安全可靠性如何解决
核心系统转型问题之确保核心系统云原生分布式转型的安全可靠性如何解决
|
4月前
|
Cloud Native 关系型数据库 分布式数据库
云原生数据库2.0问题之PolarDB利用云计算技术红利如何解决
云原生数据库2.0问题之PolarDB利用云计算技术红利如何解决
|
4月前
|
Cloud Native 关系型数据库 分布式数据库
什么是云原生数据库PolarDB分布式版
本文介绍什么是云原生数据库PolarDB分布式版,也称为PolarDB分布式版,本手册中简称为PolarDB-X。
102 0
|
4月前
|
运维 Cloud Native 容灾
核心系统转型问题之云原生分布式核心,业务敏捷该如何实现
核心系统转型问题之云原生分布式核心,业务敏捷该如何实现
|
4月前
|
运维 Cloud Native 容灾
核心系统转型问题之云原生分布式核心运维成本如何降低
核心系统转型问题之云原生分布式核心运维成本如何降低
|
4月前
|
运维 Cloud Native
核心系统转型问题之提升云原生分布式转型的效率如何解决
核心系统转型问题之提升云原生分布式转型的效率如何解决

热门文章

最新文章

相关产品

  • 云原生数据库 PolarDB