StoneDB:开源MySQL HTAP数据库及其演进计划(二)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
性能测试 PTS,5000VUM额度
简介: StoneDB:开源MySQL HTAP数据库及其演进计划(二)

云原生实时数仓-StoneDB:开源MySQL HTAP数据库及其演进计划(二)

嘉宾信息
李浩 StoneDB首席架构师 StoneDB PMC


StoneDB:开源MySQL HTAP数据库及其演进计划(二)


二、Present of StoneStoneDB

我们主要从几个角度来看,首先第就是功能性,可用性,的角度来看,首先,StoneDB增强了dma的能力,与其他的一些app,数据库一些处理平台不同,对于我们在上增强了delet能力支持,比如说update一些能力,我们在后面也会提到,我们也支持了一些并行处理的能力,通过肉格式的以及并行回放的一些能力的,使得在储备的场景下,储备的延时可以大大的去减少原生的一码;第三个就是8.0,我们8.0也在积极的开发内测过中,第5个就是从环境下或者主备环境下的强制的天默引擎,也就是说,无论是你使用引擎或者引擎。

image.png

我们可以强制的为天空引擎,当主上发展数据变化时候,在背机上,就实时的转成劣势存储,那么在我的背机上提供对外的app分析的能力,这是一种主备的方式;通我们这种,第6个就是我们这是一种比较复杂的像utf,用户自定义的函数以及处罚器等等,对于我们数据类型的支持,现在这是一种decimal,这种方式为这种在金融方面,对于数据类型或者精度要求比较高的情况下,提供了更好的数据类型的一些支持,最后就是8.0版本的支持能力,当然,比如说像企业级特性,比如审计,包括一些ck镜像的一些知识,我们基本的能力,当前已经得到完全的一些支持,那么从性能的角度来看,除了刚才我们提及的一些粗造级过滤以及知识网格,用来加速查询处理,包括并行执行,现代化执行,我们还从查询优化的一些角度,比如说sql优化的角度,提供一exist转化为相应的的方式。

大家可能知道,对于exist,比如说转化为官方的8.0版本上,有相应的支持,但是把这部分的能力,我们会把它移植到我们都具有相同的查询优化的能力,再就是全表扫描条件的,就是说,我们在解锁的过程中,可以大大去减少我们满无关数据。

我们只需要检索到满足查询条件的一些数据集合,节约了io的消耗,再就是我们数据的一些加载的能力这表格就是我们与其他产品在100g的数据量的情况下,在tb的场景下,我们那些表现形式,测试的结果,这里就不再大做详细的介绍,大家可以去看一下。

image.png

那么作为数据库,作为基础软件,它的稳定性是至关重要的,为了加强稳定性,从主要从以下几个方面着手,首先第就是说我们在开发或者在开发的过程中常规的一些保证,不但需要通过StoneDB的一些case,同时我们需要也需要通过tm test case,再就是我们代码的覆盖率,使得所有的提交的代码或者运行的代码,基本上都要进行一覆盖,从而可以减少到覆盖代码的一些比较细微的,比较复杂场景下比较少的场景下的bug的发生的概率,第三个是按安全漏洞的扫描,我们在开发过程中,一些bug,无论是涉及到MySQL的官方的一些bug,还是说引擎的一些bug,代码的持续的一些治理,只有在代码持续治理的过程中,才会减少,进一步去减少bug的产生。

image.png

从社区的情况来看,截止从去年六月底开源截止到现在,基本上github上收获的大概是707个star,然后外部的贡献者大概有31位左右,那么社区的情况下,我们也会积极的进行国产化适配,无论是从操作系统还是从基础的一些硬件平台或者软件平台上,做了一些积极的一些适配。

社区包括,在社区自动开源以来,获得社区的一致的一些好评,获得了2022年的优秀开源技术团队,也获得了2022技术卓业评的年度创新产品奖,这都是对我们产品的一些认可,刚才介绍了我们StoneDB当前的一些情况。


三、Where StoneStoneDB will go?

未来动StoneDB会走向哪里呢?研究的方向是什么?

image.png

下面我们从主要几个方面去来给大家去讨论一下,第一是架构的一些引进的方向,未来会我们会向全内存的方式,内存计算加内存的演进的方向,在2.0版本中我们会去支持,我们想打造的是中国款的MySQL,这样开源的对标的产品,使得我们把在MySQL生态上的app的一些能力给给社区,给更多的广大的用户来获取到,我们就是比较方便的一些app处理的能力,比较低成本的app处理的能力。

在我们架构眼进的过程中,导致的一些变化主要从几个方面,首先第就是用户界面一些变化,无论是从语法,还是从1.0上面的一些使用的方式,那么都会发生一些稍微的变化;第二个就是查询引擎,由于我们是in memory的,对于查询引的改造需要涉及到几个方面,首先我们要去知道负载的类型,同时我们要知道负载的我们根据cost,把负载去智能的,比较自动化的,到无论是;第二,对用户来说,它是不感知的,再就是变化,就是执行引擎方面的一些变化,未来我们会继续加强执行引擎方面的一些优化,第4个我们也提到了,其实是最大的不同,就是引入了劣势的内存引擎,那么除了以后,数据导入,数据的安全,资源的隔离,包括生态建设,这些也都是未来所努力的发展方向,或者说未来我们需要去引进的努力的目标。

image.png

单机版的未来,未来2.0相对来说处理能力相较于1.0上有有个比较大的提升,为了进一步提升在app处理方面的一些使用的产品无论从数据量还是从业务的类型。

image.png

我们将会支持所谓的集群方式的部署及部署的方式,会在后面的app上面会提供p集群,带来好处是候进一步扩大我们所能处理的数据,毕竟单节点的处理能力还是受限于一些技术架构,因为在2000版本中是memory的,由于内存的物理限制,使得数据量处理的能力是有一定使用场景是有移动的限制,通过我们这样方式,把我们节点进行使得我们所能够处理的数据量会进步的扩大,在天目class里面会涉及到几个主要的点,大概这里面会大家去介绍一下。
首先第就是数据的一些分布策略,数据去加载进来的时候,数据的一些分布方式,我们首要的目的,就是将负载数据去均匀的分布到我们天目引擎的数据节点上面去,再是数据的一些重分布的策略,因为我们在业务的运行的过程中,会涉及到不断的一些操作,带来的一些问题,我们经过长时间的运行,使得我们数据在各个节点上的分布情况可能变得不那么均匀,会有一定的数据倾斜的情况存在。数据全分布的策略,就是非常重要的问题,怎样保证在迁移的过程中不会影响到上面的业务,因为数据迁移可能会涉及到io,网络这些方面的资源的消耗,怎么样能保证我们gts或者q ps不下降的情况下,做到平滑的,数据的一些分布的也是我们面临的问题,是我们未来进的方向。

再是元数据的管理,包括后面一些问题,其他a p p架构涉及到众多的,各种各样的一些细节的问题,这里面就不再详细的展开了。我们未来会支持多存储的解决方案,除了我们常用硬盘的一种方式的,比如说在有个2.0版本的memory方式,未来我们希望基于这种这样架构的方式,支持nfs对象存储,那么带量的好处使得我们StoneDB的一些存储成本会下降,我们会与阿里云采用阿里云的存储平台,它是本地的统一的存储平台提供了统一的,多协议的这样接入的方式为我们带来低成本,把高可用的,本地存储,我们基于阿里云的存储平台上存储方面的一些要求,比如说一些安全。


image.png

阿里云存储平台去负责,我们只关心上面的一些计算方面的一些计算的计算能力,除了本地化的部署方式,未来我们会也会上,那么在上云的以后,我们未来的点就是会使用,阿里云的就是阿里云的cds基础设施,云化的新的一代存储引擎。

image.png

的特点就是打破了存储的架构,采用于公有员一样的架构体系,由此,可以去很平滑的未来迁移到我们私有云等比较灵活的部署方式,这里面会涉及到几个问题,首先就是我们存算分离,从刚才在介绍也可以知道,我们无论是1.0还是2.0,它其实是从存储,并不是存储分离的方式,因此,未来比如说StoneDB未来方式上云,最重要的一点就是要做到存储分离,第二个是说资源的池化,资源的池化是为了更好的存分,未来我们cpu的资源的实化,内存资源的实化,存储资源的实化,使得我们这样在我们存在分离的架构下,可以去更好地利用我们池化的资源,做到弹性的扩容。

再就是这样东西,现在已成为数据库方面的基本的,标准的能力,最后是ai能力,为什么会说ai会是未来在数据库上的非常重要能力,从我们StoneDB的角度考虑。

image.png

业务的的复杂度,包括我们用户的情况是未知的,希望通过ai方式减少用户的使用成本,提供自动化的一些集群的部署数据的加载,比如说可以通过机器学习的一种方式,哪类负载,哪类用户它的负载的情况,可以做到使得整体的成本做到最低包括,查询处理,故障处理,这些都是我们在做,引入机器学习以后,或者我们未来所引进的方式,就是说通过构建查询代价模型并更据负载的情况,历史数据,我们可以去更新,查询已经获得比较好的查询计划,好的查询计划所对应的就是好的执行计划,执行计法,带来优势就是对于查询性能一些质的提升,我要基于故障的数据,历史的负载数据做一些故障预测,因要考虑用户一些业务的连续性,不希望用户在我们使用我们服务的时候,出现较大的一些故障等等,同时也会一些负载的高峰期是什么样。

我们可以合理的规划一些资源的使用,从企业特性来看,会进一步去加强数据安全,同时也会在数据的一些协同方面,我们会做一些努力,我们会打通StoneDB的一些相关的上下游,数据的一些分享,同步等等,未来是做到一些数据的一些同步,协同方面的一些能力,再就是审计方面的一些能力,包括运维,包括生态,包括一些平台,多平台支持,这里面就会包括云平台上的东西,以及底层一些架构,比如说wr这样东西。

StoneDB已经在阿里云计算上已经上线了,欢迎大家去适应StoneDB云上阿里带来好处就是运维各方面的东西还是比较友好的,购买使用的东西也是比较方便。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
58 15
|
7天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
|
11天前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
19天前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据
|
27天前
|
运维 关系型数据库 MySQL
安装MySQL8数据库
本文介绍了MySQL的不同版本及其特点,并详细描述了如何通过Yum源安装MySQL 8.4社区版,包括配置Yum源、安装MySQL、启动服务、设置开机自启动、修改root用户密码以及设置远程登录等步骤。最后还提供了测试连接的方法。适用于初学者和运维人员。
153 0
|
1月前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
36 1
|
1月前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
42 4
|
2月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
69 3
Mysql(4)—数据库索引
|
1月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
207 1
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
112 2