阿里工程师讲座(三)|学习笔记

本文涉及的产品
函数计算FC,每月15万CU 3个月
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 快速学习阿里工程师讲座(三)

开发者学堂课程【高校精品课-西安交通大学-数据库理论与技术:阿里工程师讲座】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/12/detail/15865


阿里工程师讲座(三)


内容介绍:

一. 传统数据库架构和云的本质

二. 云原生数据库

三. 下一代云原生数据库


三.下一代云原生数据库

所以刚才介绍的云原生数据库架构其实主要是在共享存储这个架构,因为现在共享存储就是云原生数据库的主流架构,在共享存储上原来做的一些工作以及单独做了一些优化的工作那下一代远程数据库应该是怎么样的也有一些思考,以及已经做了一些前置的部署。

这里可以看到数据库的核心还是要做更好的 US status所以 US status 为什么很有价值,就是传统数据库架构,就是一个 resource 需求,要根据你的峰值需求来确定资源量,就像之前提到的买一个机器哪怕峰值一下1000台机器,平时只要一台机器也得买1000台,并且不能减少。

那在原生数据库这个阶段就是会有 scale 做的比较好的时候就跟现有这个阶段就可以做分时段的弹性就是某个时间段需求比较大时可以去把资源 scaleup 起来。如果某个阶段需求比较小,那要付的钱其实只要付蓝色的积分部分所以这个成本就会下降的比较多。

那中泰的原生数据库应该怎么样应该是不需要用户 care 这些,要买什么规格要买多少的机器,要买多少内存的数据库这种都不用关心就是用多少就给多少最后按用的量来计费,那这才是理论上最完美的数据库了,所以现在的原生数据库就是以这个目标来做一个演进了。

image.png

技术上怎么做呢?其学术界已经有很多的探索,应该去怎么做这个事情,这里有一些比较新的这几年的论文,一个就是架构网络演进,整个架构应该演进包括 SIGMOD 提出了关键数据库应该可以用远程内存 RDMA 来做加速第三篇就开始提了第三篇是普通大学一篇论文,它的内容是说可以用高效的内存的分离来实现数据库的这部分弹性。第四篇是比较有名的是 OSDI18best paper它就是用内存存储整体的分离做了一个操作系统。最后一篇是在这个操作系统上运行数据库来检验这个架构的可行性。整个学术界基本上也是在存储分离的基础上做内存分离这个架构来做下一代云原生数据库的探索。

image.png

就是说传统的没有任何共享数据库,它弹性可能是小时级那么在存储计算分离以后它的弹性是分钟级,那到内存分离以后因为整个大部分的非意识状态,意识状态之下都是共享的。弹性时只要分配一个更大的 cpu 就行,那cpu本身是无状态的所以可以把整个弹性做到秒级,那这样就可以实现了按用户的需求来做弹性就可以了。

image.png

那么在一八年就开始立项做下一代云原生数据库,因为那时候 PolarDB 就是共享存储的原生数据库,基本上已经成熟了,分了一部分力量来做这个事情就是在做这个共享内存的数据库共享数据库最大的特点就这个共享内存架构共享内存架构最大的优势就是它的 cpu 跟内存就可以不再对等,因为经常出现的情况是一个数据库节点cpu平时其实运行量是非常低的,但是因为内存缓存了大量的数据内存使用量又特别高,那这部分不闲置下来的cpu其实是不能被使用起来的,因为内存跟存储一定要在一台机器上。

现在构建了一个分布式的内存池以后这些问题就不存在了因为闲下来的这些 cpu 完全可以共享给别人来用。那这样自己的成本就会有大量的下降那另外一个就是多个cpu可以共享一份内存。那么成本就会分担比较厉害,比如本来扩展15个读节点,那每个读节点都要有一份独立的内存,那这个内存里面缓存的数据其实都是差不多的。现在它们可以共享一份数据一份内存,这份内存里面缓存的数据就可以缓存的更多了

第二个就是内存弹性内存可以不再有什么限制因为它是个节点的分布式的内存池那这对于一些分析型块的性能其实是非常重要的。第三个就是通过共享内存就可以实现这个秒级弹性。因为 cpu 节点上的数据都可以刷到内存上来,那么弹性就只要去重新分配这个 cpu 就可以。这份结果在工业界或者学术界都是比较新的工作,所以把这份结果放到了6月份开的 SIGMOD 21,SIG MOD 21是一个鼎会是现在相对来说是数据库业界最好的一个会议。

image.png

以下这是一个指标,刚介绍了共享存储架构挑战那共享内存架构的挑战就更大了。比如原来的 cpu 跟内存的通信都是通过 QPI 总线,基本都是百纳秒这个级别那现在即使通过 RDMA 来做,那也是几个 u 秒这个级别,这个通信成本需要通过大量的架构的优化以及实现的优化来减少这部分额外通信对性能带来的影响现在看到的就是在local有一个非常小的缓存的情况下,肯定需要的就跟L2缓存一样但是缓存量非常小可能只要原来的百分之十百分之五,这个力度性能还可以达到原来的90%左右的水平。

sysbench 就是工业上用的比较多的一个测试机,包括 TPCC 也测了。整个进程损失大概只有10%几,这样基本上是处于的可用的形态前面一些学术界的论文也提到,基本上要损失一个数量级。只能到百分之五十或者百分之三四十这个成本内那个挑战,所以这块还是重要的。包括这就是不单是说做了这个架构实践优化,也更深度的去结合这些软硬件相关的工作来实现性能的提升所以第三部分的下一代数据库架构基本就分享到这

image.png

最后也是呼应一下前面提到的就是以前学术界跟工业界还是有比较大的 GAP就是学术界在研究自己方向,工业界也在研究自己方向,互相交流比较少。但是现在这几年这个情况有很大的改善,包括工业界也会跟学校合作做一些研究,来做一些宣讲来讲一些现在在做的事情,老师会把自己的一些研究成果,看看能不能放到一个现实的系统中,这样互相的交流会特别多,这个是比较重要的一个事情。

今天就分享到这里,欢迎以后毕业了加入

问:serverless 怎么理解

答:因为 serverles s 这个词用的比较多,它其实也是类比于传统的架构,就是传统架构去买一个 server那云传统时说的 server,就是买一台物理机后来云时代出现以后,Server 基本上是买一个虚机那么现在 serverless越多就是说虚机的概念也不需要虚机,也算是 infrastructureserverless 以后,比如 functio 方这种功能都认为是一个比较 serverless 的一个形态,不需要去 care 这个程序到底是运行在哪台机器上,因为有机器就有这个框框,有这个框框再去设计就很难去做就更高层面的弹性或者相关工作,那就是只是给一个执行的容器,不需要去care真的执行台机器上需要时,把这个函数孵化出来来调用逻辑调用完就释放掉。

那对于数据库来说 serverless 也是这个含义,这里提了就是在共享存储上也在做 serverless,这个 serverless意思就是这个机器也不局限于给多少个,比如8个和32个G 的内存,而是根据需求,流量高了给一个更高的规格更大的资源流量少了再给回来其实认为是个 ondemand 过程,那就是不再需要 server 的概念,跨越这个server就是一个分布式。所以数据库的 serverless 就是按需的去给一个资源现在基本上业界在提 serverless 的时候都是可以做自适应的弹性

后面提的 PolarDB serverless 目的也还是一样,还是按需的给一个资源的供给,但是它的实现就不一样,它不再是去自动的做升降,而是它水平方向直接把资源全部给裁剪开来了完全是在一个大的资源池里面做弹性而不是规格的一个柔性的升降配。但的目标是一样的。

问:云数据库跟阿里数据中台是什么关系?

答:数据中台,以个人的理解它这个大层的服务,它是个 service,它会提供更上层的一些功能。云数据库其实是个Pass,那它只是提供一个数据库的能力。在数据库上面再做一些数据的集成数据的筛减,数据化的一些服务架在这个云数据库上那才是提供一个数据中台的能力。所以基本认为这中间还有一层。

相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
运行项目遇到:该网页无法正常运作,localhost将您重定向的次数过多时的解决方案
运行项目遇到:该网页无法正常运作,localhost将您重定向的次数过多时的解决方案
465 1
|
SQL 安全 Java
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
MyBatis-Plus 提供了一套强大的条件构造器(Wrapper),用于构建复杂的数据库查询条件。Wrapper 类允许开发者以链式调用的方式构造查询条件,无需编写繁琐的 SQL 语句,从而提高开发效率并减少 SQL 注入的风险。
306 2
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
|
数据采集 监控 数据可视化
数据驱动营销五步法:提升营销效果的关键指南
数据驱动营销五步法:提升营销效果的关键指南
503 17
|
存储 关系型数据库 MySQL
[重磅更新]PolarDB-X V2.3 集中式和分布式一体化开源发布
2023年云栖大会,PolarDB-X 正式发布 2.3.0版本,重点推出PolarDB-X标准版(集中式形态),将PolarDB-X分布式中的DN节点提供单独服务,支持paxos协议的多副本模式、lizard分布式事务引擎,可以100%兼容MySQL。同时在性能场景上,采用生产级部署和参数(开启双1 + Paxos多副本强同步),相比于开源MySQL 8.0.34,PolarDB-X在读写混合场景上有30~40%的性能提升,可以作为开源MySQL的最佳替代选择。
|
传感器 存储 监控
树莓派的应用场景有哪些
树莓派是一种小型、低成本的计算机,广泛应用于教育、家庭自动化、媒体中心、游戏、机器人、物联网项目等领域,支持多种操作系统和编程语言。
2229 8
|
存储 大数据 数据处理
洞察未来:数据治理中的数据架构新思维
数据治理中的数据架构新思维对于应对未来挑战、提高数据处理效率、加强数据安全与隐私保护以及促进数据驱动的业务创新具有重要意义。企业需要紧跟时代步伐,不断探索和实践新型数据架构,以洞察未来发展趋势,为企业的长远发展奠定坚实基础。
|
存储 NoSQL 关系型数据库
可以存储文件的数据库有哪些?
可以存储文件的数据库有哪些?
1427 6
|
机器学习/深度学习 人工智能 前端开发
前端工程化
前端工程化是现代前端开发中不可或缺的一部分,它涵盖了从代码编写到项目部署的各个环节,通过一系列的技术和工具,为前端开发带来了更高的效率、质量和可维护性。随着技术的不断发展,前端工程化也将不断演进和完善,为前端开发带来更多的便利和创新。
|
存储 Ubuntu 网络协议
快速配置Let's encrypt通配符证书
快速配置Let's encrypt通配符证书
1334 0
快速配置Let's encrypt通配符证书
|
机器学习/深度学习 算法 Java
基于多动作深度强化学习的柔性车间调度研究(Matlab代码实现)
基于多动作深度强化学习的柔性车间调度研究(Matlab代码实现)
382 0