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

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
函数计算FC,每月15万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云上阿里带来好处就是运维各方面的东西还是比较友好的,购买使用的东西也是比较方便。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
关系型数据库 分布式数据库 数据库
瑶池数据库大讲堂|PolarDB HTAP:为在线业务插上实时分析的翅膀
瑶池数据库大讲堂介绍PolarDB HTAP,为在线业务提供实时分析能力。内容涵盖MySQL在线业务的分析需求与现有解决方案、PolarDB HTAP架构优化、针对分析型负载的优化(如向量化执行、多核并行处理)及近期性能改进和用户体验提升。通过这些优化,PolarDB HTAP实现了高效的数据处理和查询加速,帮助用户更好地应对复杂业务场景。
|
1天前
|
缓存 关系型数据库 MySQL
【深入了解MySQL】优化查询性能与数据库设计的深度总结
本文详细介绍了MySQL查询优化和数据库设计技巧,涵盖基础优化、高级技巧及性能监控。
12 0
|
28天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
59 3
|
28天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
70 3
|
28天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE 'log_%';`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
88 2
|
1月前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
264 15
|
1月前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
|
1月前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
|
1月前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
2月前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据