黄东旭:The Future of Database,掀开 TiDB Serverless 的引擎盖

在 PingCAP 用户峰会 2023 上, PingCAP 联合创始人兼 CTO 黄东旭 分享了“The Future of Database”为主题的演讲, 介绍了 TiDB Serverless 作为未来一代数据库的核心设计理念。黄东旭 通过分享个人经历和示例,强调了数据库的服务化而非服务化数据库的重要性,并展示了 TiDB Serverless 架构的创新之处, 同时探讨了 TiDB Serverless 对于中国用户的价值 。以下为分享实录 。

作为今天上午的最后一个话题,相信大家已经感受到今天我们分享的最核心逻辑,跟 刚才刘奇(PingCAP 创始人兼 CEO)分享 的我们部署一代、研发一代相承接,到我这部分就是未来的一代: 预研一代。

因为今天会场有很多熟悉的老朋友,看到我这个标题肯定会心一笑,我每次在大会上的演讲都是这个题目:The Future of Database。选择这个主题一是我发现每次讲未来的东西都有东西可以讲;另外一点,很多老朋友发现我去年总是不时消失一段时间,怀疑我去闭关修炼了,我也跟大家汇报一下东旭去哪儿了。

Demo:我花了多长时间构建我自己的 OSSInsight Lite

分享之前给大家看看,刘奇的分享里面的这一页,把我 GitHub 个人数据分析的服务截图放上去了,这个小 demo 是我个人的挑战,我能不能完全做到不写代码,不去买服务器,完全用现代化的在线的云上的应用做一个我自己的数据服务。

在这个 demo 里边,我几乎全程只用了鼠标来操作,我想分享的点并不是让大家去学习这些技术,而是想让大家稍微体验一下现代的开发者构建应用的方式已经完全不同——门槛越来越低。

我经常会有一些天马行空的想法,比如我会想如果要给全世界的开发者都提供免费的数据库,这个成本得有多大?以现在的技术肯定支撑不了。那如果要做这么个东西的话,我们可能需要重新去思考数据库本身的一些最基础的东西。

一个人人可用的数据库服务,有怎样的技术架构?

这是一些数据库厂商会说的老生常谈 : 扩展性、稳定性、用户线性的扩缩容、节省成本、多租户、云原生 。

但是刚 才我说的那些新的需求或者面向未来的数据库 , 可能对每一项都会有更高的要求 。比 如你的系统已经具备了一定的扩展性和稳定性,但更重要的是你能不能给 用户一个 稳定的性能的预期 ,我经常说一句话,稳定的慢比不稳定的快其实更好 ,可预测性对系统和底层的架构提出了更高的要求;第二就是现在几乎每个分布式数据库都支持弹性扩容,而更高的要求可能是,在做这些扩缩容的复杂操作的时候,开发者、DBA 都不需要去费 心, 数据库的扩缩容对业务来讲是完全无感的 ,体验非常顺滑;成本层面, 我们再把成本压缩到极 限—— 我能不能,不用的时候就不花钱? 开源软件的分发上、下载不要钱,但是运行软件的服务 器要花钱,现在我们再往前想一步,——数据库、服务器 零成本的起步能不能支持 ;多 租户上,我们过去要去强调互相的隔离,但是如果为了实现大规模的海量的免费的用户、中小型的敏捷的业务 , 不仅要强调隔离,还得强调资源的高效利用和共享 ;云原生是老生常谈,做到 云中立 就是进一步的 目标。

我这边挑一个简单的例子,就从最近发布的多租户能力说起。如果把租户的规模从私有化部署的几十几百个,扩大到十万个、一百万个、一千万个甚至一亿个,平台如何去支撑这么大的租户数量,它需要哪些基础的能力,我们是怎么思考的?第一老生常谈,多租户一定要 隔离 ;第二是 刚才唐刘稍微讲了一下 我们现在在研发的东西:资源管控,我们必须得实现一套很好的机制能够让海量用户更高效地利用和 共享 底层系统的资源,才能达到很低的成本;第三就是 能区分 ,每一个用户在使用的体验上都必须能够感受到自己是在拥有整个数据库的。

之前有人问我 TiDB 支持多租户、多应用这种模式吗,我当时一直都是比较保守,通过几个大版本的迭代,我现在可以负责任的说,TiDB 要去实现现代的多租户,基础的能力都已经满足了。

TiDB Serverless :未来数据库理念的「概念车」

我们回到最开始的话题:如果我们要给全世界的开发者提供数据库该咋做?今天我就给大家说一下背后的概念车,把 TiDB Serverless 引擎盖掀起来大家看一看。

今天无数次讲到了 TiDB 的经典架构,然而如果把 TiDB 这个经典架构搬到云上,想实现“人人可用”这个目标,仅从成本上考虑,PingCAP 就得赔死了。

所以重新设计 TiDB Serverless 的时候,我当时定下了几个规范或者开发的哲学,其中最重要的一 条就是 我们应该做的是数据库的服务化,而不是服务化的数据库 。

传统意义上来说我们要做云数据库,大家第一直观感觉,底下做个云管平台,每个租户部署一套 TiDB,把自动化的管控做完,这不就可以了吗?但是 TiDB Serverless 在这个方面,我们选择重新去思考一些非常基础的东西,刚才做云上运维 TiDB 的思路是行不通的,如果要做这么大规模这么新的东西的话,而且应该当做一个完整的服务去设计,而不是把它当做一个数据库去设计。

八年前一开始设计 TiDB 的时候,我看到的东西就是一台台具体的服务器,我看到的是 CPU、内存、磁盘,基于这些东西我们构造了 TiDB。但是如果我们现在在云上构建 Serverless 这个系统,拿到的是一张白纸,我今天重新再开始去设计这个系统的时候,我看到的已经不是 CPU、磁盘机器这样的东西了,我看到的东西是云上给我的服务,EC2、虚拟机,我看到的是对象存储,我甚至可以看到云厂商的 RDS,我能不能拿 RDS 作为系统的一部分,所以在新的云原生的工程哲学里边必须有一条能够充分利用云的基础设施,这也是我们能把成本推到如此极限的一个核心的思想。

掀开 TiDB Serverless 的引擎盖,大概有三个新的东西,第一个换了新的云原生的引擎 CSE(Cloud-native Storage Engine),非常朴素的名字。第二是终于在 TiDB 引入了逻辑上的 Key Space,第三就是 Resource Control 以及 RU 的概念,从上到下做全局流控。

这是 CSE 整体的架构,核心就一点,它是一个极致的成本考虑下,极致的多租户背景下的新一代云上 OLTP 存储引擎。本质来说即使在之前的存储层,TiKV 这一层也开始做了存算分离,这就带来一个好处,比如有一些用户的数据是冷数据,因为我们在云上发现大多数的用户的业务和数据满足 82 法则,20%的热数据,80%可能是冷数据,但这些冷数据你在它不用的时候就可以按照流量的需求,直接 compact 到 AWS S3 这样云上更便宜的存储上面。AWS S3 存储的价格每 TB 每个月大概 20 美金,喝两杯咖啡就有一个月一个 TB 的存储空间了,这还是没有任何优惠的情况,实际上还可以更便宜。

所以基于新的存储引擎,我们可以发现本身 TiDB 之上所有的组件一下子就变成了无状态的。当一个组件变成无状态了以后,怎么去降低成本?池化。

图中 TiDB 右边现在已经把所有的包括计算节点存储节点全都变成了池化的设计,最上面加入了一层 Gateway,用户直接连接到 Gateway,Gateway 负责对现在用户的请求从资源池中捞出一个活跃的节点,它不用的时候连接断开再放回去。

大家看这个图尤其是做系统架构多年的朋友会有个感觉,这个东西感觉不像一个数据库,反而像大型互联网公司后台的服务——有这个感觉就对了,因为我们在设计这个系统的时候就不是把它当做一个数据库在设计,而是把它当做一个真正的云服务在设计,所以才能达到极致的性能和成本的压缩。

TiKV 是 TiDB 的存储引擎,所有的数据都是通过 key-value 来编码的,Key Space 本质上,就是在编码前面加上一个用户 ID 的前缀,将 tenant ID 作为 group keys 的前缀。

这张图解释了零成本起步,业务没有流量的时候就不收钱,本质上还是依靠池化来实现的。刚才我提到用户的连接都是连接到一层可以水平扩展的 Cluster Gateway 上,Gateway 来控制计算节点是否启用。如果这个客户的数据特别冷,十天半个月都不访问一下,这个数据完全存储在对象存储上,在对象存储上的成本是极其低的,在用户请求的时候再快速加载回来。这样一个架构保证了 TiDB Serverless 基础设施的成本会被均摊到所有用户身上,用户越多,数据量越大的时候,成本也就会越来越低。

我最后分享一个小小的例子。我们公司内部也有自己用自己产品的习惯,这是我们自己的一些服务 demo,全部用 TiDB 自己构建。我们做了一个很有趣的工具叫 OSS Insight,把 GitHub 上的数据抓下来做分析的一个在线应用,这个在以前传统的 TiDB Cloud,也就是经典 TiDB 云上部署架构下,一个月的成本在一万美金左右,上图就是我们付给自己的账单。

同样这个业务今天已经接近 12 个 TB 了,这样一个巨型的数据库前一段把它迁移到 Serverless 以后,总体成本下降了 70%,而业务在使用层面上也完全没有任何的感知。

这里有一个很有趣的真实例子,刚才我们看到整体的 TiDB Serverless 的设计是面向弹性去做设计的,但是这种东西总是希望能有一个实际的例子去验证一下这东西是不是真的在现实生活中比较好用,我们也真的有了这样的机会。今年 4 月初 OSS Insight 成功登上了 HackerNews 的首页,流量一下暴增到原来的 7 倍,这个事情还发生在中国时间的深夜,我们的工程师都还在睡梦中,TiDB Serverless 自动发现了流量的突变把集群扩容,承担起 7 倍流量的业务负载以后,又自动缩回来,前端业务的各项指标都还是非常稳定的,也没有额外的收费。这是一个特别好的例子,我们也特别欣慰。

我今天分享了一些我们未来对数据库的看法,关于 TiDB Serverless,我还有三个点想强调。第一,虽然看到现在它是一个在纯 云端的服务,但是 我们有计划将更先进的架构服务于中国的客户 ,甚至你可以 未来在私有化环境里面部署 TiDB 的 Serverless。因为我们设计这个系统内核的时候非常仔细的考虑了这个系统本身的可移植 性, 刚才这些东西未来大家会在自己的数据中心或者自己的云上去使用 ;第二,我 个人认为这也是代表着数据库最前沿的发展的方向, 就是 云原生加上极致的弹性 ,我们在 思考数据库本身的一些架 构或者最底层的想法的变革都会遵循这个方向;第三点我个人觉得 Serverless 是我们很好的练兵场,包括中国企业级客户我们预研出来的版本我们新的一些特性,最早会在 Serverless 上应用 ,比如 刚才我说的 Key Space 这个功能,目前已经在 Serverless Tier 上实现了上万个用户的部署,经过上万个集群的打磨,很快也会在企业版和云上托管版本里边落地。

最后我想小小的总结一下今天我的分享以及我的一些感受。我也代表着 PingCAP,纵使大的经济环境充满各种不确定性,我们永远相信技术创新能够真正给业务带来价值,我也相信技术真正能够改变世界,所以我们相信未来永远是一个更好的世界。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/53111.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

020 - STM32学习笔记 - Fatfs文件系统(二) - 移植与测试

020 - STM32学习笔记 - Fatfs文件系统(二) - 移植与测试 上节学习了FatFs文件系统的相关知识,这节内容继续学习在STM32上如何移植FatFs文件系统,并且实现文件的创建、读、写与删除等功能。各位看官觉得还行的话点点赞&#xff0c…

Spring Tool Suite 4

参考:Spring tool suite4 安装及配置_springtoolsuite4_猿界零零七的博客-CSDN博客 下载:Spring | Tools 将下载的JAR进行解压两次,直至解压出contents中的sts 双击启动 第一次打开需要指定工作区文件夹 配置Maven的config 安装插件

(笔记)Layout知识点汇总(积累量变)

Layout知识点汇总 布线1、电容电阻中间不要穿线2、线宽不要超过焊盘,引出后加粗 拐角1、layout:钝角走线 线宽间距1、注意和差分信号线的距离 焊盘1、焊盘中心出线2、线连接到焊盘中心 布局1、时钟线包地处理2、音频的左右声道,加粗&#xff…

【多模态】18、ViLD | 通过对视觉和语言知识蒸馏来实现开集目标检测(ICLR2022)

文章目录 一、背景二、方法2.1 对新类别的定位 Localization2.2 使用 cropped regions 进行开放词汇检测2.3 ViLD 三、效果 论文:Open-vocabulary Object Detection via Vision and Language Knowledge Distillation 代码:https://github.com/tensorflo…

C语言每日一题之整数求二进制1的个数

今天分享一道题目&#xff0c;用三种方法来求解 二进制1的个数 方法1 我们的十进制除10和取余数就可以得到我们每一位的数字&#xff0c;那我们的二进制也可 以 #include<stdio.h> int num_find_1(unsigned int n) {int count 0;while (n){if (1 n % 2){count;}n / 2…

element中tabs组件,click事件点击拿到当前item的所有数据

话不多说&#xff0c;直接上代码&#xff1a; 添加一个:value&#xff0c;然后在用JSON.stringify(item)转一下就可以了&#xff0c;这样就会存在$attrs.value这个里面了。 接着在点击事件里面获取使用el.$attrs.value&#xff0c;注意这里在拿到这个值时&#xff0c;再用JSON…

事务的隔离级别以及传播机制的详细讲解

1.为什么需要事务&#xff1f; 事务就是将一组操作封装成一个执行单元&#xff0c;要么全部执行成功&#xff0c;要么全部执行失败 ⽐如转账分为两个操作&#xff1a; 第⼀步操作&#xff1a;A 账户 -100 元第⼆步操作&#xff1a;B 账户 100 元 如果没有事务&#xff0c;第⼀…

SQL-每日一题【1173. 即时食物配送 I】

题目 配送表: Delivery 如果顾客期望的配送日期和下单日期相同&#xff0c;则该订单称为 「即时订单」&#xff0c;否则称为「计划订单」。 查询即时订单所占的百分比&#xff0c; 保留两位小数。 查询结果如下所示。 示例 1: 解题思路 1.题目要求我们查询出顾客期望的配送日…

回归预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络多输入单输出回归预测

回归预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现SO-CNN-LS…

Ubuntu20.04安装Autoware.universe并与Awsim联调

文章目录 引言一、安装依赖1.1 安装git1.2 克隆Autoware到本地1.3 自动安装相关依赖1.4 安装显卡驱动1.5 安装ROS2 Galactic1.6 安装ros2_dev_tools1.7 安装rmw_implementation1.8 安装pacmod1.9 安装autoware_core1.10 安装autoware universe dependencies1.11 安装pre_commit…

论文阅读-BotPercent: Estimating Twitter Bot Populations from Groups to Crowds

目录 摘要 引言 方法 数据集 BotPercent架构 实验结果 活跃用户中的Bot数量 Bot Population among Comment Sections Bot Participation in Content Moderation Votes Bot Population in Different Countries’ Politics 论文链接&#xff1a;https://arxiv.org/pdf/23…

解密低价正规渠道的来源:影视会员肯德基点餐直充api接口

话费充值 接口已经整合移动、联通、电信三网话费充值渠道。话费可以说是全民所需&#xff0c;对于平台引流&#xff0c;增强平台日活跃度可以提供不小的帮助。 肯德基在线点餐 接口整合了各大城市的肯德基门店&#xff0c;支持门店选择&#xff0c;在线点餐 提前点餐领取&a…

Xilinx AXI VIP使用教程

AXI接口虽然经常使用&#xff0c;很多同学可能并不清楚Vivado里面也集成了AXI的Verification IP&#xff0c;可以当做AXI的master、pass through和slave&#xff0c;本次内容我们看下AXI VIP当作master时如何使用。 新建Vivado工程&#xff0c;并新建block design&#xff0c;命…

设计模式-备忘录模式在Java中使用示例-象棋悔棋

场景 备忘录模式 备忘录模式提供了一种状态恢复的实现机制&#xff0c;使得用户可以方便地回到一个特定的历史步骤&#xff0c;当新的状态无效 或者存在问题时&#xff0c;可以使用暂时存储起来的备忘录将状态复原&#xff0c;当前很多软件都提供了撤销(Undo)操作&#xff0…

虚拟现实技术(VR)

目录 1.什么是虚拟现实技术 2.虚拟现实技术的由来 3.虚拟现实技术给人类带来的好处 4.虚拟现实技术未来的走向 1.什么是虚拟现实技术 虚拟现实技术&#xff08;Virtual Reality&#xff0c;简称VR&#xff09;是一种通过计算机生成的模拟环境&#xff0c;使用户能够身临其境…

原生html—摆脱ps、excel 在线绘制财务表格加水印(html绘制表格js加水印)

文章目录 ⭐前言⭐html标签&#x1f496;table表格的属性&#x1f496;实现财务报表 ⭐结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c;本文分享原生html——绘制表格报表加水印。 背景&#xff1a;解决没有ps的情况下使用前端html制作表格报表。 html介绍 HTML&#xf…

国内外遥感数据处理软件对比

1.国内遥感数据处理软件概况 1.1北京航天宏图信息技术股份有限公司 1.1.1公司简介 航天宏图信息技术股份有限公司成立于2008年,是国内遥感和北斗导航卫星应用服务商,致力于卫星应用软件国产化、行业应用产业化、应用服务商业化,研发并掌握了具有完全自主知识产权的PIE(Pix…

TWILIGHT靶场详解

TWILIGHT靶场详解 下载地址&#xff1a;https://download.vulnhub.com/sunset/twilight.7z 这是一个比较简单的靶场&#xff0c;拿到IP后我们扫描发现开启了超级多的端口 其实这些端口一点用都没有&#xff0c;在我的方法中 但是也有不同的方法可以拿权限&#xff0c;就需要…

el-table 设置行背景颜色 鼠标移入高亮问题处理

一、 设置行背景颜色 1. 需求描述 后端返回表格数据&#xff0c;有特定行数需要用颜色标识。类似于以下需求&#xff1a; 2. 解决方式 方式区别:row-class-name“tableRowClassName”已返回类名的形式设置样式&#xff0c;代码整洁&#xff0c;但是会鼠标高亮&#xff0c…

【ChatGLM_01】ChatGLM2-6B本地安装与部署(大语言模型)

基于本地知识库的问答 1、简介&#xff08;1&#xff09;ChatGLM2-6B&#xff08;2&#xff09;LangChain&#xff08;3&#xff09;基于单一文档问答的实现原理&#xff08;4&#xff09;大规模语言模型系列技术&#xff1a;以GLM-130B为例&#xff08;5&#xff09;新建知识库…
最新文章