[PolarDB实操课] 01.PolarDB分布式版架构介绍

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云原生数据库 PolarDB 分布式版,标准版 2核8GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 《PolarDB实操课》之“PolarDB分布式版架构介绍”由阿里云架构师王江颖主讲。课程涵盖PolarDB-X的分布式架构、典型业务场景(如实时交易、海量数据存储等)、分布式焦点问题(如业务连续性、一致性保障等)及技术架构详解。PolarDB-X基于Share-Nothing架构,支持HTAP能力,具备高可用性和容错性,适用于多种分布式改造和迁移场景。课程链接:[https://developer.aliyun.com/live/253957](https://developer.aliyun.com/live/253957)。更多内容可访问阿里云培训中心。

[PolarDB实操课] 01.PolarDB分布式版架构介绍

内容介绍:

一、PolarDB分布式版

二、数据灾备中心PolarDB-X典型的业务场景

三、分布式焦点问题

四、PolarDB分布式版技术架构

五、PolarDB-X分布式版-CN组件和DN组件

六、PolarDB-X分布式版-CDC组件

七、PolarDB-X分布式版-Columnar组件

 

本次分享的主题是PolarDB分布式版架构,由PolarDB开源架构师王江颖分享。

来源:课程《PolarDB实操课》

课程链接:https://developer.aliyun.com/live/253957

更多学习内容可跳转阿里云培训中心https://edu.aliyun.com/

 

一、PolarDB分布式版

PolarDB分布式版简称PolarDB-X,是由阿里巴巴自主研发的云原生分布式数据库,基于一款Share-Nothing架构理念,Share-Nothing是分布式的计算架构,它的核心原则是系统中的每一个节点都有自己独立的硬件资源和状态,包括CPU,内存,磁盘,存储等都是独立的。由于节点之间没有共享的资源,单一节点的故障也不会直接影响到其他节点,所以整个系统具有较高的可用性和容错性。

PolarDB-X同时还具备HTAP的能力,即混合事务分析处理的能力,它支持行列混存,基于内存加速在线分析查询,同时还支持在线事务处理与在线分析处理(HTAP)的融合型分布式数据库产品,具备金融级数据高可用、分布式一致性以及极致弹性等能力。

PolarDB-X经历了三个阶段的演进:

2009年在阿里巴巴内部发起的IOE运动中,为了解决传统单机数据库扩展性不足的问题,采用了基于杀点技术和开源MYSQL的分布式架构进行了改造。杀点技术就是分片技术,其核心思想是将一个大型的数据库分割成多个较小的、更加容易管理和可扩展的片。因为是基于开源的MYSQL去改造的,所以PolarDB-X是高度兼容MYSQL生态的。

从2014年开始,走上了云数据库发展的道路,推出了DRDS+RDS的分布式云数据库服务。这一代产品采用了Share-Nothing的架构,主要是为了解决存储扩展性的问题。

从2018年开始,把云架构和分布式技术进行了融合,推出了新一代的云原生分布式数据库。这一代产品是基于存储和计算分离的架构设计的,实现了资源的解耦和独立的弹性。

image.png

 

二、PolarDB-X典型的业务场景

PolarDB-X典型的业务场景可以分为五种。

image.png

1. 实时交易的场景。

尤其是一些数据量比较大、并发高的场景,非常适合用分布式数据库来处理。

2. 海量数据集中存储场景。

这类场景有很多高并发,而且单表往往很大,需要进行单表的拆分。

3. 国产化的分布式的改造场景

主要是满足银行运营商等行业的国产化诉求。

4. 从自建数据库迁移上云场景

主要是为了减少运维管理的复杂度。

5. 面向有分布式改造诉求的场景。

如果未来的业务数据量比较大就需要对系统进行分布式的改造。

 

三、分布式焦点问题

image.png

1. 业务的连续性

作为分布式数据库要保证业务的连续性,通常会讲到RPO=0能力,它是业务系统所能够容忍的数据的丢失量。RPO=0指系统恢复时数据丢失量为零,这是衡量系统容灾能力的一个很重要的指标。分布式数据库如何能够提供和单机数据库一致的RPO=0的能力,还要保证多副本的数据分布式的一致性和提供异地容灾能力等。

2. 一致性保障

分布式数据库的事物是跨节点处理的。如何保证事物的一致性?如何应对复杂的查询场景?如何保证数据的同步还有备份,恢复中上下游数据的一致性,这些都是我们要思考的。

3. 透明分布式的能力

透明分布式的能力主要指的是用户透明。Share-Nothing的分布式架构虽然能够保证容灾的能力,但是它也带来了系统的复杂性。因为需要管理数据分布、复载均衡、故障检测和恢复等方面的问题。这些问题都很复杂。那么如何减少用户使用分布式数据库的复杂性,来降低用户的学习成本?为用户提供无限接近单机的使用体验,也是在设计时需要考虑的问题。

 

四、PolarDB分布式版技术架构

 

image.png

PolarDB-X的架构分为四个核心部分。从上至下分为GMS、CN、DN还有CDC。GS指的是原数据服务,主要是用于维护数据库的原数据信息以及账号权限等安全信息。所谓原数据metal data指的是关于数据的数据,它提供了有关数据库和数据的一些详细信息,常见的表结构,数据类型等都属于原数据。

GMS还提供全局授时的服务叫TSO, 它的全称叫time stamp oracle,指的是时间戳的概念,它主要是用于分布式系统中用来生成全局一致而且唯一递增的时间戳。

在分布式数据库系统中,全局的时间戳对于维护事物的顺序,还有数据的一致性以及整个系统的协调都是非常重要的。

CN是离应用最近的部分,它接收来自应用的SQL,主要负责SQL的解析、优化还有执行。

通过SQL引擎在系统中实现数据的数据或者消息传输的路径的选择,也就是分布式的路由。他还去负责处理分布式事务的2PC协调、维护全局的索引。2PC也叫two face commit, 是一个两阶段提交协议,它是实现分布式事务的广泛使用的一个协议。它指的是将事物提交的过程分为两个阶段,准备阶段和提交阶段。

在准备阶段,所有的参与节点都会去决定是否可以提交一个事物。

在提交阶段基于准备阶段的决定,所有的节点一起,要么提交这个事务,要么去回滚事物。分布式系统就是通过2PC来保证事物的原子性和一致性。

DN存储节点也叫数据节点,主要是用来提供数据存储引擎的。比如MYSQL里面的inno,还有一些自研的存储引擎,比如PolarDB-X的X-engine引擎,主要是解决数据的一致性和持久化问题。DN节点里面很重要的一个概念叫Paxos协议。它基于Paxos协议来实现高可靠的存储。Paxos协议是分布式系统中解决一致性问题的一个很重要的协议。它基于多数派原则来实现的。

多数派原则指的是在这个系统中需要超过一半的节点去同意某个提案,这个提案才可以被系统所接受。通过这种Paxos协议、多数派原则,就能够确保即便在面临节点故障的情况下,也能够提供高可用性和一致性。

DN节点还负责处理分布式MVCC事物的可见性判断。MVCC的英文叫Multi-Version Concurrency Control多版本并发控制,这是一种并发控制的方法。通过为数据的每次更改创建不同的版本来避免锁的使用,从而允许多个读写操作并发进行。就是会创建多个版本。可见性判断指的是在MVCC中要决定哪一个数据版本对于特定的事物是可见的,即判断哪个版本对事物是可见的事物,在读取数据的时,要看的是哪个版本,因为有很多版本需要看到数据。取决于事物的开始时间和数据版本的创建时间,通常一个事物只能看到开始之前已经提交的更改,只能看到较早的数据版本,通过可见性判断功能来控制。

存储节点中有一个叫Columnar的组件,它叫做列存节点。在数据库中列存节点一般比行存高。列存非常适合解决一些分期查询的场景。行存更适合解决OTP这类交易类场景,即有频繁插入更新或者删除操作的交易类场景。PolarDB是同时支持行存和列存的,他支持跟列不同表的使用模式,灵活的选择行存或列存的存储方式。是实现其type能力的一个关键功能。

CDC节点指的是日志节点,它是提供binlog相关支持功能的节点。Binlog指的是二进制日志,是MYSQL数据库中很重要的概念,是一种提供数据更改记录的日志文件。这个日志文件可以记录数据库当中执行的一些操作,对数据库的复制还有恢复都是非常关键的。

CDC节点提供MYSQL主从复制的交互的功能。主从复制指有一台数据库来充当主数据库,另外一台或者是多台数据库来充当从数据库。主数据库主要负责写入操作,从数据库主要负责读取还有备份操作。主数据库当中的数据会自动复制到从数据库当中来实现数据副本,提高数据库系统的读取性能。它还可以提供数据备份以及进行故障恢复操作。在MYSQL数据库中,主从复制主要是基于binlog来实现。

 

五、PolarDB-X分布式版-CN组件和DN组件

image.png

CN/CN组件有一个MYSQL的协议层,这个协议层是高度兼容MYSQL语法的。

在CN节点包括执行器、优化器等,这些负责SQL的解析、优化还有执行。SQL解析层可以实现精准的算子下推。算子下推是数据库查询优化里面一个很重要的概念,指的是将查询处理的某些部分,如过滤、聚合、连接等操作,使这些操作尽可能的靠近数据源执行。这样可以减少数据的传输,增加查询的效率,最终提高数据库的整体的性能。CN节点还具有Serverless弹性扩展能力、HTAP并行计算的能力,可以应对混合负载场景。

DN节点是基于阿里云自研的阿里SQL内核来设计的,它有一个稳定可靠的特点。在DN节点中,数据节点有逻辑节点和物理节点的概念。一个逻辑节点包含三个物理节点。三个物理节点之间怎么来保证数据的一致性?它通过Paxos协议来保证一致性,另外MVCC功能主要满足金融级的一致性要求。

CN和DN节点有一个RPC协议。这是一种通信私有通讯协议。RPC全称叫remote procedure call,它是一种允许程序调用另一台计算机上的程序或者服务的通信协议。RPC协议抽象了网络通信的细节,使得开发者能够像调用本地函数一样调用远程的函数或方法。开发者不需要了解底层的网络技术,就能够实现通信。

 

六、PolarDB-X分布式版-CDC组件

image.png

CDC组件主要是用来处理全局binlog。首先extractor解析DN的binlog,解析完之后会进行一些排序操作。merger负责分布式事务的日志DDL排序、重组等,经过排序的binlog做一个全局的合并,这个排序会输出到DP去对接下游的一些链,比如DTS等,会去负责全局日志的落盘,提供标准的binlog服务。通过这样的过程会实现binlog的体验和单机的MYSQL的体验是一致的。

在分布式数据库系统中,实现跨多个节点或者是实例的操作是很困难的事情。因为分布式系统中的各个节点,可能会因为网络延迟等原因,很难维护一致的全局时间的序列。为了解决这个问题,PolarDB-X通过TraceID和TSO信息对binlog进行全局的排序,来实现一致。可以把TraceID理解为一个唯一标识符ID,ID就是用来标识身份的,把它理解为唯一的标识符,他可以跟踪分布式系统中的单个操作或者是请求,来告诉我们哪些操作是同属于一个事物或者是请求来进行标记。

PolarDB-X是兼容MYSQL生态的一个分布式数据库。它通过集群内的CDC组件去提供和MYSQLbinlog格式兼容的变更日志。它也能够兼容分布式的DDL,并且他可以屏蔽内部的分片、迁移、广播表、索引等数据的干扰,提供和单机的MYSQL数据库一致的使用体验。

 

七、PolarDB-X分布式版-Columnar组件

 

image.png

Columnar组件是列存节点。它主要是为了应对数据库数据爆炸式增长的挑战。基于对象存储设计的列存的索引功能,它支持将行存的数据实时的同步到列存的存储上,满足行列混存的功能,实现type能力。

PolarDB-X的列存索引是采用读写分离的组件来进行设计的。列存对接的是CN节点的MPP的并行计算。Columnar节点主要负责列存的写入,他会去对接CN节点。

CN节点主要负责列存的读取。列存和行存有不同的应用场景。列存更适合AP场景。行存更适合TP的交易的场景。PolarDB分布式提供了面向行列混合场景的代价优化器的功能。这个优化器可以去根据代价智能识别路由,智能的把TP的查询转发给行存的查询的链路,把AP类的查询转发给列存的查询链路,让他们各自分工,从而提高查询分析的性能。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
28天前
|
存储 缓存 NoSQL
分布式系统架构8:分布式缓存
本文介绍了分布式缓存的理论知识及Redis集群的应用,探讨了AP与CP的区别,Redis作为AP系统具备高性能和高可用性但不保证强一致性。文章还讲解了透明多级缓存(TMC)的概念及其优缺点,并详细分析了memcached和Redis的分布式实现方案。此外,针对缓存穿透、击穿、雪崩和污染等常见问题提供了应对策略,强调了Cache Aside模式在解决数据一致性方面的作用。最后指出,面试中关于缓存的问题多围绕Redis展开,建议深入学习相关知识点。
175 8
|
7天前
|
存储 关系型数据库 分布式数据库
PolarDB 开源基础教程系列 1 架构解读
PolarDB 是阿里云研发的云原生分布式数据库,基于 PostgreSQL 开源版本,旨在解决传统数据库在大规模数据和高并发场景下的性能和扩展性问题。其主要特点包括: 1. **存储计算分离架构**:通过将计算与存储分离,实现极致弹性、共享一份数据以降低成本、透明读写分离。 2. **HTAP 架构**:支持混合事务处理和分析处理(HTAP),能够在同一系统中高效执行 OLTP 和 OLAP 查询。 3. **优化的日志复制机制**:采用只复制元数据的方式减少网络传输量,优化页面回放和 DDL 锁回放过程。 4. **并行查询与索引创建**:引入 MPP 分布式执行引擎。
33 7
|
1月前
|
存储 缓存 安全
分布式系统架构7:本地缓存
这是小卷关于分布式系统架构学习的第10篇文章,主要介绍本地缓存的基础理论。文章分析了引入缓存的利弊,解释了缓存对CPU和I/O压力的缓解作用,并讨论了缓存的吞吐量、命中率、淘汰策略等属性。同时,对比了几种常见的本地缓存工具(如ConcurrentHashMap、Ehcache、Guava Cache和Caffeine),详细介绍了它们的访问控制、淘汰策略及扩展功能。
76 6
|
1月前
|
关系型数据库 MySQL 分布式数据库
[PolarDB实操课] 05.通过源码部署PolarDB-X标准版
本课程介绍如何通过源码部署PolarDB-X标准版,涵盖基于Paxos的MySQL三副本工作原理和技术特点。主要内容包括: 1. **Paxos三副本工作原理**:讲解Leader和Follower节点的角色及数据同步机制。 2. **技术特点**:强调高性能、数据不丢失(RPO=0)和自动HA切换。 3. **源码部署步骤**:详细演示从编译生成RPM包到启动DN节点的过程,包括配置my.cnf文件和初始化数据库。 4. **高可用体验**:通过三台机器模拟三副本集群,展示Leader选举和故障转移机制,确保数据一致性和服务可用性。
|
1月前
|
关系型数据库 编译器 分布式数据库
PolarDB实操课] 04.通过源码部署PolarDB-X企业版
本次课程由PolarDB开源架构师王江颖分享,详细介绍了通过源码部署PolarDB-X企业版的全过程。主要内容包括: 1. **编译基础** 2. **使用源码编译部署PolarDB-X企业版** 3. **演示实例**:通过阿里云ECS进行实际操作演示,从创建用户、赋予权限到最终启动并连接PolarDB-X数据库,展示了完整的部署过程。 4. **总结**
|
1月前
|
弹性计算 关系型数据库 PolarDB
[PolarDB实操课] 03.使用PXD部署PolarDB企业版和标准版
本课程详细介绍了如何使用PXD工具部署PolarDB-X企业版和标准版。主要内容包括: 1. **PolarDB-X企业版与标准版的区别**:讲解了两者的架构特点、性能差异及适用场景。 2. **集群机器上安装Docker环境**:指导用户在阿里云ECS实例上安装Docker,确保后续部署顺利进行。 3. **部署机上安装PXD**:介绍如何配置密钥连接、安装Python3并激活虚拟环境,最后安装PXD工具。 4. **创建并部署PolarDB-X**:通过编写拓扑文件(YAML格式),一键拉起PolarDB-X集群,并验证部署状态。
|
1月前
|
关系型数据库 分布式数据库 PolarDB
[PolarDB实操课] 02.使用云起实验室资源快速体验PolarDB分布式版
本次课程由阿里云PolarDB开源架构师黄心雨分享,重点介绍如何使用云起实验室资源快速体验PolarDB分布式版。主要内容包括: 1. **PolarDB-X的四种安装方法**:Docker、PXD工具、Kubernetes和源码编译。 2. **容器技术简介**:解释容器在云原生环境中的作用,解决代码跨环境迁移问题。 3. **云起实验室实操**:通过云起实验室提供的零门槛平台,快速部署PolarDB-X,体验其主要功能。 4. **课程小结**:总结PolarDB-X的安装方式及实际操作步骤,并展望后续课程内容。
|
1月前
|
Cloud Native 关系型数据库 分布式数据库
让PolarDB更了解您--PolarDB云原生数据库核心功能体验馆
让PolarDB更了解您——PolarDB云原生数据库核心功能体验馆,由阿里云数据库产品事业部负责人宋震分享。内容涵盖PolarDB技术布局、开源进展及体验馆三大部分。技术布局包括云计算加速数据库演进、数据处理需求带来的变革、软硬协同优化等;开源部分介绍了兼容MySQL和PostgreSQL的两款产品;体验馆则通过实际操作让用户直观感受Serverless、无感切换、SQL2Map等功能。
107 7
|
7天前
|
存储 关系型数据库 分布式数据库
PolarDB 开源基础教程系列 8 数据库生态
PolarDB是一款开源的云原生分布式数据库,源自阿里云商业产品。为降低使用门槛,PolarDB携手伙伴打造了完整的开源生态,涵盖操作系统、芯片、存储、集成管控、监控、审计、开发者工具、数据同步、超融合计算、ISV软件、开源插件、人才培养、社区合作及大型用户合作等领域。通过这些合作伙伴,PolarDB提供了丰富的功能和服务,支持多种硬件和软件环境,满足不同用户的需求。更多信息请访问[PolarDB开源官方网站](https://openpolardb.com/home)。
40 4
|
1月前
|
存储 关系型数据库 分布式数据库
PolarDB PostgreSQL版:商业数据库替换与企业上云首选
PolarDB PostgreSQL版是商业数据库替换与企业上云的首选。其技术架构实现存储计算分离,具备极致弹性和扩展性,支持Serverless、HTAP等特性。产品在弹性、性能、成本优化和多模处理方面有显著提升,如冷热数据自动分层、Ganos多模引擎等。已在汽车、交通、零售等行业成功应用,典型案例包括小鹏汽车、中远海科等,帮助企业大幅降低运维成本并提高业务效率。
46 13