ICDE:POLARDB定义云原生数据库

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 4月17日(巴黎时间)阿里云POLARDB走出国门,亮相ICDE2018,并同步举办阿里云自有的POLARDB技术专场。在会上,阿里云进行了学术成果展示,从而推动Cloud Native DataBase成为行业标准。

4月17日(巴黎时间)阿里云POLARDB走出国门,亮相ICDE2018,并同步举办阿里云自有的POLARDB技术专场。在会上,阿里云进行了学术成果展示,从而推动Cloud Native DataBase成为行业标准。
以下为阿里云资深技术专家蔡松露演讲实录:
1
现在我给大家介绍一下我们的云原生数据库-POLARDB。
大家可能要问到底什么是“云原生数据库”,云原生数据库的标准是什么,我们是如何定义的以及为何如此定义?现在,我们先把这些问题放一边,我们稍后回答。
2
现在我们看一下一个云原生的数据库大概是什么样子,门槛是什么,特性是什么,首先,云原生数据库必须有优越的性能,有百万级别的QPS;其次,必须有超大规模的存储,可达到100TB的存储空间;在云上0宕机能力也是非常重要的;最后一个也是最重要的,云是一个生态系统,数据库必须兼容开源生态。
云原生数据库就像一辆跑车,一辆跑车可能有很多特性,比如外观、速度,但是一个有这样外观和速度的车不一定是跑车。所以回到我们的问题,云原生数据库的标准是什么,在回答这个问题之前,我们看一下数据库的发展历史。
3
我从4个维度来看一下数据库的发展历史,首先,从数据规模上来看,我们生活在一个数据大爆炸的时代;其次,某些数据库理论发生了演变,尤其是CAP理论,我们在算法理论上也有所突破;第三,用户和应用场景也在发生变化;第四,基础设施也在从传统IDC迁移到云上。
4
为什么会有数据大爆炸呢?数据是如何爆炸的呢?这是我引用的互联网女王米克尔的报告,你可以看到,互联网历史可以整体分为三个阶段,第一阶段我们称之为PC互联网,数据主要由PC产生,第二个阶段可以称之为移动互联网,数据主要由智能手机产生,第三个阶段是IoT,从现在开始,几乎所有的数据由物联网设备产生,可能是你的手表、冰箱、家里的电灯和汽车,可能是任何设备。
随着数据大爆炸,也带了很多挑战,大规模的数据意味着用于存储和分析数据的成本也大幅上升,搬运和分析数据也变得困难,总之,数据很难被利用。
5
最近这些年分布式系统的一些理论也有了重大变化,CAP就是其中之一,CAP理论在2000年引入,在这个理论中,C代表一致性,A代表可用性,P代表分区容错性,这个理论的核心观点是在P发生时C和A不可能同时被满足,CAP是一个伟大的理论,但是对CAP理论也存在很多误解,其中一个误解就是C和A是互斥的,所以有些系统选择放弃其中一个来满足另一个,比如很多NoSQL数据库,但是实际上,C和A的关系不是0和1的关系,而是100%和99%的关系。
现在我们也可以把P问题建模成A问题,P问题主要由网卡、交换机、错误的路由配置等故障引起,我们考虑一下这样一个例子,一个节点因为网卡错误而被网络分区,到这个节点的请求会失败,如果我们能够将这个节点自动剔除,那么请求会重试并且会被发送到一个健康的节点,事实上,当一个节点宕机的时候我们也采用同样的处理方式,所以基本上,P和A问题在某些情况下可以看做是一类问题。
我们如何把失败的节点自动剔除并且能够同时保障数据一致性呢?我们可以用PAXOS算法来达到这个目的,PAXOS能够保证一致性,而且PAXOS只需要过半数的操作成功即可,所以当有网络分区、宕机、慢节点出现时,我们可以容忍这些问题节点并做到自动剔除。如果超过半数节点被分成了若干个分区,这时我们选择一致性牺牲可用性,但是在现实世界中这种情况极少发生,所以在大多数情况下,我们可以通过将P问题建模成A问题来同时保证完整的C和A。
6
20年前,只有政府和一些巨头公司会选择数据库,现在从巨头到小微企业所有的业务都会跑在数据库上,而且对数据库的需求也在发生变化。
首先,数据库必须灵活,有时我们需要做一个市场活动,比如黑色星期五,我们不知道当天的真实流量,有时会有突发的热点信息,这时流量会有一个飙涨并且是不可预测的,我们希望数据库能够灵活地进行扩展;其次,随着全球化的发展,贸易也越来越透明,很多用户的业务规模比较小,意味着利润也很少,他们需要更经济的解决方案;目前的客户要求也比较严格并且对延迟很敏感,数据库延迟越低带给客户的损失会越小;最后,数据库必须对每一个潜在的问题做到反应迅速,并能从问题状态中快速恢复过来。
总之,目前对数据库的潜在需求是:弹性、低成本、高性能、业务永续。
7
现在,所有的一切都是时刻在线的,在云时代以前,数据散落在IDC中,现在数据都位于数据湖中,数据会在线产生并且同时被应用到训练模型中,所以这些数据是在线产生、在线分析并在线应用;我们的生活现在也是时刻在线的,比如衣食住行、工作、社交、娱乐等都是可以在线解决的,你可以用一部手机足不出户就能活下来;现在你的客户也是时刻在线的,他们遍布世界各地,无论白天还是黑夜,一直在线。
8
在目前的中国,70%的新型企业都因数据挑战而对业务产生了影响,他们面临的问题主要有:高成本,他们负担不起商业license和专业的工程师;他们有很强的发展的意愿但是数据能力不够强;对他们来说数据备份、数据挖掘和问题排查都是非常困难的事情;他们的数据目前像孤岛一样散落分隔在多个地方,数据无法做到在线并被浪费,但是数据在持续增长爆炸,这些数据很难被存储、转移、分析并使用
根据上述演变趋势和接踵而来的数据挑战,我们认为一个云原生的数据库应该符合以下标准。
9
首先,一个云原生数据库不仅是一个TP数据库,也是一个AP数据库,TP和AP融合在一起,我们称之为HTAP,我们从这种架构中获益良多;其次,云原生数据库必须是serverless的,有了serverless,我们可以大幅削减成本;最后,云原生数据库必须是智能的,就像一个顾问,可以承担很多诊断和管理工作,通过这些工作我们可以提升用户体验并让用户不必再关心这些枯燥棘手的事情。
接下来我们详细阐述一下。
10
在HTAP中TP和AP共享一份存储,对于分析来说不存在任何数据延迟,由于不需要数据同步,我们也不必把数据从主节点同步到一个只读节点,这时数据是实时的,对于时延要求比较苛刻的应用来说非常有益;当TP和AP共享一个存储之后,至少会省去1个副本的成本,对于计算层,AP和TP通过容器来进行隔离,所以AP对TP没有任何影响,而且有了这层隔离之后,TP和AP可以轻松做到分别扩展。
11
有了serverless,产品规格或版本升级时可以做到0成本,计算节点会跑在一个轻量的容器中,客户端会话的生命周期比较短,所以当我们进行滚动升级时,客户端几乎感知不到任何变化;有了serverless可以轻松做到按需使用,按存储付费,计算成本也很低,并且你可以为不同的业务模型指定不同的存储策略,对于忙的业务,可以使用更多的内存和SSD,对于闲置的业务,可以把数据放到HDD盘上,这样可以大幅缩减成本。
12
提到智能,智能顾问会分析实例产生的如CPU/存储/内存使用率和水位线等数据给你一个SQL或索引优化建议,在外人看来智能顾问就像是一个DBA,并把用户也武装成一个专业的DBA;当数据链路上有问题发生时,由于数据链路又长又复杂,所以我们不清楚问题到底出在哪里,当我们有一个监控和诊断系统后,我们可以轻松地去诊断整个链路并迅速给出根本原因;智能顾问也能负责其他如成本控制、安全、审计等职能。
13
在上述若干标准和门槛的指导下,我们打造了一个全新的云原生数据库-POLARDB,我会从架构、产品设计、未来工作等几个方面全方位阐述一下POLARDB。
14
这是一个POLARDB的架构大图,上层是计算层,下层的存储层,存储和计算分离,他们中间通过RDMA高速网络相连接,所有的逻辑都运行在用户态,绕过了linux内核,在用户路径上,我们实现了0拷贝,我们同时实现了一个RAFT的变种ParellelRaft,它支持乱序提交,比传统的Raft速度要快很多;我们同时使用了大量新硬件,既可以提升性能又能降低成本,POLARDB也是面向下一代硬件而设计。
15
对于计算节点,只有一个写入口,R/W节点负责所有类型的请求,包括读和写请求,其他节点都是只读节点,只能处理读请求,对于存储节点,我们通过ParellelRaft算法来实现三副本一致性写。我们为何要做存储计算分离呢?首先,我们可以为存储和计算阶段选取不同类型的硬件,对于计算层,我们主要关注CPU和内存性能,对于存储层,我们主要关注低成本的存储实现,这样存储和计算节点都能做到定制化和针对性优化;分离之后计算节点是无状态的,变得易于迁移和failover,存储的复制和HA也可以得到针对性的提升;存储现在可以方便地池化,以块为单位进行管理,所以不再会有碎片问题、不均衡问题,并且易于扩展;在这种架构下,也很容易实现serverless,当你的业务比较空闲时你甚至可以不需要任何计算节点。
16
在POLARDB中,任何逻辑都跑在用户态,一个请求从数据库引擎发出,然后PFS会把它映射成一组IO请求,然后PolarSwitch会把这些请求通过RDMA发送到存储层,然后ParellelRaft leader处理这些请求并通过SPDK持久化到磁盘上,同时再通过RDMA同步两份数据到两个followers,在整个路径上没有系统调用,也就没有上下文切换,同时也没有多余的数据拷贝,没有上下文切换加0拷贝使得POLARDB成为一个极快的数据库。
17
这是POALRDB文件系统-PFS的详细说明,PFS具有POSIX API,对数据库引擎侵入性很低,PFS是一个静态库并被链接到数据库进程中,PFS是一个分布式文件系统,文件系统的元数据通过PAXOS算法进行同步,所以PFS允许并行读写,为了访问加速,在数据库进程中有元数据的缓存,缓存通过版本控制来进行失效操作,为了便于大家理解PFS,这是PFS和传统文件系统的一个类比。
18
我们使用ParellelRaft来同步三份数据,ParellelRaft是Raft的变种之一,Raft不允许乱序提交和日志空洞,这些限制让Raft性能比较低、吞吐比较小,在ParellelRaft中,我们允许乱序提交、确认、和应用,事务的语义和串行化由数据库引擎层来负责,对于空洞我们有一整套完整的catch-up机制,这是一个非常复杂的过程,在VLDB 2018的论文中,我们有详细论述,这篇论文刚被接收。
19
在POLARDB中,我们使用了一些新硬件并最大化利用这些硬件的能力,除了RDMA,我们还在研究open-channel来最大化SSD的价值,我们也在通过3D XPoint技术在加速存储层。
20
这是POLARDB和RDS的对比压测结果,我们使用sysbench来进行压测,紫色的柱子代表POLARDB,粉色的代表RDS,通过这些数字可以看出,在使用相同资源的情况下,POLARDB的平均读性能是RDS的6倍,平均写性能是RDS的3倍,所以这个提升是巨大的。
21
我们接下来看一下POLARDB的产品特点,性能上,很容易扩展到100W QPS,并且延迟小于2ms;存储最大支持100TB;弹性上,可以很方便做横向和纵向扩展,并且在规格升级时0宕机无干扰;对于兼容性,会100%兼容MySQL;在可用性上,当有错误发生时,我们会选择一致性牺牲可用性,所以目前我们承诺3个9的可用性,在数据可靠性上,我们承诺5个9。
22
在POLARDB中,读和写被分离到不同的节点上,只有一个写节点,写节点可以处理读写请求,可以有多个只读节点,写QPS最多可达13W,读QPS可以很方便地扩展到几百万。
23
对于可扩展性,所有节点都可以做纵向扩展,只读节点可以做横向扩展,实例的存储可以做纵向扩展,存储集群可以做横向扩展,当读写节点和只读节点之间做failover时可以做到0宕机。
24
对于数据迁移,你可以通过加载一个OSS(类似AWS S3)上的备份来启动你的数据库,也可以通过将POLARDB当成RDS的slave来从RDS实时复制数据,也可以利用DTS(data transfer service数据传输服务)来从RDS和其他数据库迁移到POLARDB。
25
对于数据可靠性,我们可以做到1个region内可用区内多个可用区之间的failover,你可以在其他可用区启动一个standby实例并且使用redolog来进行复制,也可以在多个region之间failover,我们通常使用binlog进行复制,对于备份,我们可以秒级打出一个snapshot然后传输到OSS上。
26
下面是POLARDB的一些未来工作,目前POLARDB还只是个婴儿,我们仍然有大量工作需要去做,在引擎层我们将会支持多写,目前POLARDB是一个共享磁盘的架构,未来会是一个共享所有资源的架构,比如在计算层我们会引入一个集中化Cache的角色来提升我们的查询性能,我们也在移植更多的数据库到POLARDB,比如更多的MySQL版本、PostgreSQL、DocumentDB等。在存储层,我们会使用3D XPoint技术来提升IO性能,我们也会通过open-channel技术在提升SSD性能,将来我们也会将更多引擎层的逻辑进行下推,尽量减少更多的IO,让计算层更加简单。
27
关于学术我们的基本思想是:学术要在工程落地,工程要有学术产出,没有单纯的工程或者学术。我们团队已经向Sigmod和VLDB提交了数篇论文,最近这些论文将会出版,大家会看到更多的关于POLARDB和它的分布式存储的详细的信息,我们也正在欧洲进行招聘,我们在巴黎和德国都设有办公室。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
1月前
|
Cloud Native 关系型数据库 分布式数据库
让PolarDB更了解您--PolarDB云原生数据库核心功能体验馆
让PolarDB更了解您——PolarDB云原生数据库核心功能体验馆,由阿里云数据库产品事业部负责人宋震分享。内容涵盖PolarDB技术布局、开源进展及体验馆三大部分。技术布局包括云计算加速数据库演进、数据处理需求带来的变革、软硬协同优化等;开源部分介绍了兼容MySQL和PostgreSQL的两款产品;体验馆则通过实际操作让用户直观感受Serverless、无感切换、SQL2Map等功能。
107 7
|
6天前
|
存储 关系型数据库 分布式数据库
PolarDB 开源基础教程系列 8 数据库生态
PolarDB是一款开源的云原生分布式数据库,源自阿里云商业产品。为降低使用门槛,PolarDB携手伙伴打造了完整的开源生态,涵盖操作系统、芯片、存储、集成管控、监控、审计、开发者工具、数据同步、超融合计算、ISV软件、开源插件、人才培养、社区合作及大型用户合作等领域。通过这些合作伙伴,PolarDB提供了丰富的功能和服务,支持多种硬件和软件环境,满足不同用户的需求。更多信息请访问[PolarDB开源官方网站](https://openpolardb.com/home)。
39 4
|
30天前
|
存储 关系型数据库 分布式数据库
PolarDB PostgreSQL版:商业数据库替换与企业上云首选
PolarDB PostgreSQL版是商业数据库替换与企业上云的首选。其技术架构实现存储计算分离,具备极致弹性和扩展性,支持Serverless、HTAP等特性。产品在弹性、性能、成本优化和多模处理方面有显著提升,如冷热数据自动分层、Ganos多模引擎等。已在汽车、交通、零售等行业成功应用,典型案例包括小鹏汽车、中远海科等,帮助企业大幅降低运维成本并提高业务效率。
46 13
|
30天前
|
容灾 关系型数据库 分布式数据库
PolarDB分布式版:与云融合的分布式数据库发展新阶段
PolarDB分布式版标志着分布式数据库与云融合的新阶段。它经历了三个发展阶段:从简单的分布式中间件,到一体化分布式架构,再到云原生分布式数据库。PolarDB充分利用云资源的弹性、高性价比、高可用性和隔离能力,解决了大规模数据扩展性问题,并支持多租户场景和复杂事务处理。零售中台的建设背景包括国家数字化转型战略及解决信息孤岛问题,采用分布式数据库提升高可用性和性能,满足海量订单处理需求。展望未来,零售中台将重点提升容灾能力、优化资源利用并引入AI技术,以实现更智能的服务和更高的业务连续性。
|
1月前
|
关系型数据库 分布式数据库 数据库
瑶池数据库大讲堂|PolarDB HTAP:为在线业务插上实时分析的翅膀
瑶池数据库大讲堂介绍PolarDB HTAP,为在线业务提供实时分析能力。内容涵盖MySQL在线业务的分析需求与现有解决方案、PolarDB HTAP架构优化、针对分析型负载的优化(如向量化执行、多核并行处理)及近期性能改进和用户体验提升。通过这些优化,PolarDB HTAP实现了高效的数据处理和查询加速,帮助用户更好地应对复杂业务场景。
|
30天前
|
运维 关系型数据库 分布式数据库
阿里云PolarDB:引领云原生数据库创新发展
阿里云PolarDB引领云原生数据库创新,2024云栖大会将分享其最新发展及在游戏行业的应用。PolarDB凭借弹性、高可用性、多写技术等优势,支持全球80多个站点,服务1万多家企业。特别是针对游戏行业,PolarDB助力Funplus等公司实现高效运维、成本优化和业务扩展。通过云原生能力,PolarDB推动游戏业务的全球化部署与快速响应,提升用户体验并保障数据安全。未来,PolarDB将继续探索AI、多云管理等前沿技术,为用户提供更智能的数据基础设施。
|
1月前
|
关系型数据库 Serverless 分布式数据库
瑶池数据库微课堂 | PolarDB Serverless弹性&价格力观测
瑶池数据库微课堂介绍阿里云PolarDB Serverless的弹性与性价比优势。通过瑶池解决方案体验馆,用户可免费实操,直观感受Serverless的秒级弹性及超高性价比。内容涵盖Serverless概念、操作步骤、压测演示及性能曲线分析,展示PolarDB在不同负载下的自动扩展能力。适合希望了解云数据库弹性和成本效益的技术人员。
|
1月前
|
关系型数据库 OLAP 分布式数据库
瑶池数据库微课堂|PolarDB/RDS+ADB Zero-ETL:一种免费、易用、高效的数据同步方式
瑶池数据库微课堂介绍阿里云PolarDB/RDS与ADB的Zero-ETL功能,实现免费、易用、高效的数据同步。内容涵盖OLTP与OLAP的区别、传统ETL存在的问题及Zero-ETL的优势(零成本、高效同步),并演示了从RDS MySQL到AnalyticDB MySQL的具体操作步骤。未来将优化和迭代此功能,提供更好的用户体验。
|
4月前
|
关系型数据库 MySQL 分布式数据库
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶,邀请好友完成更有机会获得​小米Watch S3、小米体重称​等诸多好礼!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
|
1月前
|
关系型数据库 分布式数据库 数据库
1月17日|阿里云云谷园区,PolarDB V2.0技术沙龙,畅聊国产数据库
为了助力国产化项目顺利推进,阿里云邀请企业开发者和数据库负责人到云谷园区,与PolarDB V2.0技术专家面对面交流。扫描海报二维码报名,我们将根据信息为您申请入园。欢迎参与,共同探讨PolarDB的最新技术和应用!

热门文章

最新文章