云原生分布式数据库PolarDB-X(一)

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 云原生分布式数据库PolarDB-X(一)

开发者学习笔记【阿里云云数据库助理工程师(ACA)认证云原生分布式数据库PolarDB-X(一)

课程地址:https://edu.aliyun.com/course/3112080/lesson/19088


云原生分布式数据库PolarDB-X(一)


内容介绍:

一、分布式数据库架构演进之路

二、云原生分布式数据库PolarDB-X整体介绍

三、云原生分布式数据库PolarDB-X应用实践

 

课程目标

本节课程的目标主要包括:

1、了解数据库架构演进。

2、了解云原生分布式数据库PolarDB-X 的产品架构

3、分布式数据库典型的应用场景和用户案例

首先是分布式数据库架构演进之路。

 

一、分布式数据库架构演进之路


1.数据库系统架构演进

图片1.png

众所周知,关系型数据库自上世纪70年代由IBM研究员科德博士提出之后,历经几十年的发展,目前已经成为了企业业务数据的主要存储方式。


当前,客户主要的部署形态还是以单机主备的形态为主,典型的数据库代表,包括商用型的Oracle数据库以及传统的开源数据库MYSQL等等,这种部署方式,数据库依赖的是本地的CPU和内存。

随着互联网时代的到来,企业业务的发展,客户的数据需要更好的扩展性,同时希望保留一定兼容性的能力,基于以上需求,诞生出了云时代主要的共享形态的产品架构,包括阿里云的PolarDB、DWS的Aurora、腾讯的CynosDB、TaurusDB等。


这种架构的优势在兼容MYSQL的生态的情况下,易于实现事务的一致性、兼容性,无需多层的复杂管理,缺点是DB节点的扩展能力受限,当前存储扩展能力以及IO性能依赖高端共享存储的性能。


随着业务进一步发展,面向海量的数据存储以及千万级的高并发访问的业务场景,共享存储已经无法满足业务需求,在5G 时代的到来,有很多的数据库演进到分布式的水平拓展架构中,称为scale out,优势在于有良好的水平扩展能力,数据高可靠性,多副本的协议,无需共享存储,这种产品架构带来的劣势是计算及存储能力扩展行需要扩展情况下灵活性不足,对于分布式来说,分布式查询带有额外的开销。


2. 阿里云分布式数据库架构演进理念

3.

图片2.png

 

基于以上的分布式演进的架构,看一下阿里云分布式数据库架构演进的理念,分布式领域的技术站主要包括基于MYSQL生态的、原生MYSQL加上分布式计算的架构,可以很好的兼容MYSQL的这个开放生态,同时提供稳定可控的数据库服务。随着这个newSQL时代的到来,对于分布式的存储,分布式的计算,还有弹性的扩展能力,都带来很大的一个业务需求,这里面,以TiDB、Cockroach、YugabyteDB等等这样的一批产品,逐渐满足了客户一定的业务需求,提供了水平扩展和分布式的能力,polarDB-X同样,目前打造的2.0产品是支持这种分布式的架构。但是在公共云上发现基于polarDB、Aurora这种存储资源池化、极具弹性能力的这个数据库,得到了很多业务的认可,在这种需求的情况下,polarDB-X秉承的云原生加分布式的设计理念,同样支持基于这样的存储资源池化的架构,来进一步衍生出来它极具弹性的原生分布式产品架构。


3.阿里云数据库完整的闭环生态

图片3.png

 了解完架构之后,再看一下polarDB-X在阿里云数据库整个的完整闭环生态里面处于什么位置,首先它主要面向的是在线的实时的数据处理能力,会兼容rds的存储,或者是基于共享存储的polarDB的存储,同时基于阿里云完整的工具生态链,可以实现对异构数据库的迁移上云。


同时在云上可以实现完整的生态打通,包括使用DPS的工具同步到下游的数仓、大数据,以及通过的DPS备份工具实现离线的备份、转储,同时面向业务开发提供了基于DMS的独性化的数据库开发和企业管理能力,在输出形态上,稍后也会展开,在公共云上、企业版、敏捷版上都有产品形态的输出,满足不同业务场景和客户对数据安全可靠要求的不同程度的需求。


4. polarDB-X 支撑双11集团电商业务

图片4.png

 polarDB-X有效的支撑了阿里集团内部双11的电商业务。由于polarDB-X早期是以DRDS的分布式中间件的形态出现的,从阿里云诞生的第一天开始以及阿里巴巴双11的第一届开始,就已经参与到核心电商业务的高频发业务的理念,同时在最近的2020年双11,非常良好的支撑了双11 1.4亿次每秒的峰值的考验,在阿里云电商业务的周边,还输出了包括金融云、零售云、物流云等等不同云形态的一个数据库产品。

 

二、云原生分布式数据库PolarDB-X整体介绍


接下来介绍PolarDB-X六大主要特性,三大交互形态以及PolarDB-X 2.0的整体架构。

1. PolarDB-X 云原生分布式数据库六大特性

图片5.png

(1)云原生

基于存储计算分离架构,资源池化高效管理,实现分钟级弹性变配

(2)透明分布式

突破单机瓶颈上限,单机平滑演进,上下游生态兼容,在线扩缩容业务无需改造,承载千万级业务并发

(3)金融级可靠

强—致性事务保障,基于Paxos协议,数据副本跨可用区RPO为0,确保数据零丢失

(4)性能强劲

峰值TPS每秒可达1.4亿次,完美抵御2020年双十一流量峰值考验

(5)混合负载

在线数据实时分析,提供TP和AP强隔离性,历史归档压缩,海量PB级数据大集中

(6)自研产品

阿里巴巴自主研发、安全可控,符合国家相关行业认证资质要求

首先PolarDB-X主要的六大特性,第一个是云原生基于计算存储分离的架构,可以充分的利用云存储资源池化高效的管理,实现分钟级的弹性变配,充分满足业务的弹性需求。第二个特点是透明分布式,这个功能是能够实现PolarDB作为MYSQL的一个大的数据库的形态。支撑MYSQL从单机平滑演进的PolarDB-X,支撑的上下游的生态兼容,稍后也会展开介绍。


同时作为分布式数据库,原生就支持在线的扩缩容,对业务来的话透明分布式无需业务改造,可以承载千万级的业务并发。面向高可靠性,提供的是金融级的可靠性的标准,在保证事物在关系型数据库要求的强一致性前提下,同时对于存储节点,基于TP的协议能够实现数据副本的跨可用区,PO为零,确保数据的零丢失,性能方面作为分布式数据库可以实现按需的扩展计算资源和存储资源,实现线性的性能扩展能力。


在2020年双11已经看到了可以抵御每秒高达1.4亿次峰值的考验。作为5G LT时代,尤其是数字化转型的业务,客户希望将更多的数据存储在关系型数据库里面,提供一个实时的在线数据分析能力,同时也要承担主要的交易型数据,也是TP数据这样的强一致性和稳定的表现,在这种业务需求的情况下,提供了混合负载的htap的一个能力,保障了TP和AP强隔离,历史归档数据的压缩,以及支撑海量PP级数据的大集中。作为一款自研的产品,阿里巴巴自主研发,安全可控,符合国家相关的认证资质标准。


2. 混合云多形态的统一支付

图片6.png

 虽然作为一个云原生分布式数据库,在公共云上提供了弹性的计算存储分离的架构,有一些客户同样在线下也会希望有产品形态输出,PolarDB-X这款产品不单单在公共云、行业云上有着良好的表现,同时也规模化的在企业版和敏捷版上输出,企业版的定位是面向中大规模的企业客户,提供同时容灾的能力,对于敏捷版客户来,就是面向的小规模的部署,同时支撑20到100个节点的规模。

目前PolarDB-X在整个业内已经支撑超过1000+以上的大型客户核心业务,同时输出形态也从早期的专有云到公共云,实现一个完整的混合云的输出的闭环。


3. PolarDB-X 2.0整体架构

图片7.png

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

提供全局授时服务(TSO)

维护Table/Schema、Statistic等Meta信息

维护账号、权限等安全信息

(2)存储节点(Date Node,DN)

基于多数派Paxos共识协议的高可靠存储

处理分布式MVCC事务的可见性判断

(3)计算节点(Compute Node,CN)

基于无状态的SQL引擎提供分布式路由和计算

处理分布式事务的2PC协调、全局索引维护等

(4)日志节点(Change Data Capture,cDC)

提供兼容MySQL生态的binlog协议和数据格式

提供兼容MySQL Replication主从复制的交互


接下来介绍一下今年主推的PolarDB-X2.0整体架构,作为一款面向newSQL的产品定位。PolarDB-X2.0产品,首先基于元数据的服务,提供全局一致的服务,同时在元数据服务里面还包含了维护Table/Schema、Statistic等元数据信息,此外,还会维护账号权限,包括推出了三权分类的这个能力,都会在这里面得到维护。


在存储节点方面,提供了基于多数派的Paxos共识协议,来保障存储节点多副本的一致性和可靠性,面向分布式的MVCC事务,也提供了可见性的判断。作为一个计算存储分离的架构,计算节点computer CN,基于无状态的SQL引擎来提供分布式路由和计算能力,基于强大的RBO和CPU的能力,也可以支持面向HTAP的混合负载的业务场景。


同时在处理分布式事务的时候,采用了两阶段的这个协调,以及全局索引的维护,使得应用的体验更加透明,更加友好。作为一个大号的MYSQL数据库,推出的日志节点的能力,打通了上下游的生态,提供兼容MYSQL生态的binlog协议和数据格式,同时提供跟MYSQL基于主从复制的交互,在2.0的形态下,可以基于PolarDB-X作为主库,MYSQL作为从库,或者两个交换作为MYSQL的从库这样的能力都是可以的。

相关文章
|
监控 前端开发 JavaScript
不了解 QPS、TPS、RT、并发数、吞吐量,劝你简历别写熟悉高并发
分布式、微服务、Service Mesh目前都是大家耳熟能详的词语了,现在随便一个互联网公司说出来大家都是在搞微服务。 但我们搞来搞去,怎么样来衡量一个应用当前的状态到底是怎么样的?到底需不需要扩容?是需要横向扩容还是进行项目重构?
10974 2
|
存储 vr&ar
R语言单变量和多变量(多元)动态条件相关系数DCC-GARCH模型分析股票收益率金融时间序列数据波动率-2
R语言单变量和多变量(多元)动态条件相关系数DCC-GARCH模型分析股票收益率金融时间序列数据波动率
|
8月前
|
机器学习/深度学习 JSON 算法
京东拍立淘图片搜索 API 接入实践:从图像识别到商品匹配的技术实现
京东拍立淘图片搜索 API 是基于先进图像识别技术的购物搜索接口,支持通过上传图片、URL 或拍摄实物搜索相似商品。它利用机器学习和大数据分析,精准匹配商品特征,提供高效、便捷的搜索体验。接口覆盖京东海量商品资源,不仅支持外观、颜色等多维度比对,还结合用户行为数据实现智能推荐。请求参数包括图片 URL 或 Base64 编码,返回 JSON 格式的商品信息,如 ID、价格、链接等,助力消费者快速找到心仪商品,满足个性化需求。
599 18
|
存储 缓存 调度
性能提升利器|PolarDB- X 超详细列存查询技术解读
本文将深入探讨 PolarDB-X 列存查询引擎的分层缓存解决方案,以及其在优化 ORC 列存查询性能中的关键作用。
1700 69
|
关系型数据库 分布式数据库 PolarDB
PolarDB操作报错合集之执行drop操作报The consensus follower is not allowed to to do current operation错误,select可以执行,是什么导致的
在使用阿里云的PolarDB(包括PolarDB-X)时,用户可能会遇到各种操作报错。下面汇总了一些常见的报错情况及其可能的原因和解决办法:1.安装PolarDB-X报错、2.PolarDB安装后无法连接、3.PolarDB-X 使用rpm安装启动卡顿、4.PolarDB执行UPDATE/INSERT报错、5.DDL操作提示“Lock conflict”、6.数据集成时联通PolarDB报错、7.编译DN报错(RockyLinux)、8.CheckStorage报错(源数据库实例被删除)、9.嵌套事务错误(TDDL-4604)。
713 1
|
数据库 数据安全/隐私保护 Windows
Windows远程桌面出现CredSSP加密数据修正问题解决方案
【10月更文挑战第30天】本文介绍了两种解决Windows系统凭据分配问题的方法。方案一是通过组策略编辑器(gpedit.msc)启用“加密数据库修正”并将其保护级别设为“易受攻击”。方案二是通过注册表编辑器(regedit)在指定路径下创建或修改名为“AllowEncryptionOracle”的DWORD值,并将其数值设为2。
10899 3
|
编解码 算法 前端开发
聊聊我从底层算法到业务算法转型的这一年
聊聊我从底层算法到业务算法转型的这一年
711 0
|
存储 关系型数据库 MySQL
深度评测:PolarDB-X 开源分布式数据库的优势与实践
本文对阿里云开源分布式数据库 PolarDB-X 进行了详细评测。PolarDB-X 以其高性能、强可用性和出色的扩展能力在云原生数据库市场中脱颖而出。文章首先介绍了 PolarDB-X 的核心产品优势,包括金融级高可靠性、海量数据处理能力和高效的混合负载处理能力。随后,分析了其分布式架构设计,包括计算节点、存储节点、元数据服务和日志节点的功能分工。评测还涵盖了在 Windows 平台通过 WSL 环境部署 PolarDB-X 的过程,强调了环境准备和工具安装的关键步骤。使用体验方面,PolarDB-X 在处理分布式事务和实时分析时表现稳定,但在网络问题和性能瓶颈上仍需优化。最后,提出了改进建
|
网络协议 应用服务中间件 nginx
性能提升-如何设置Windows操作系统TIME_WAIT状态的TCP连接快速回收时间?
性能提升-如何设置Windows操作系统TIME_WAIT状态的TCP连接快速回收时间?
630 0
|
存储 Java 索引
Java中foreach遍历数组如何拿到想要的值
总结来说,通过foreach循环遍历数组并获取所需的值是一种简单且代码清晰的操作,特别适用于只需访问集合或数组中的每个元素且不需要元素索引或修改集合的场景。在实际编程中,根据场景需求合理选择循环类型,可大大提高代码的可读性与效率。
441 4