给cantian建议的第二篇

继上一篇cantian后的继续聊

既然cantian是走存储路线的,这次就从底层的存储这个角度切入。传统数据库架构是存储与计算在一台机器上。这种成为存算一体。那么硬件达到一定程度时候扩展会有点问题。

从事数据库相关工作的人都知道,数据库最大的不稳定因素是(低效)SQL,而低效SQL几乎都来自于大量的数据读取。即大量的IO,这里的IO即可能是逻辑IO也可能是物理IO。 相对于逻辑IO来说物理IO更为恐怖。所以一般所谓的优化主要工作就是来减少IO。很多时候IO是瓶颈。

当然也会遇到优化不动的时候。既然应用侧解决不了,那么就存储侧解决。存算分离可以在一定程度上缓解IO压力。从最早的读写分离到现如今的存算分离,都是围绕着这个点在做文章。当然存算分离还有一个特点就是扩展性好。

现在做存算分离的数据库有不少。很多人其实不知道,Oracle也有存算分离的架构。単实例时候是存算一体,而RAC的架构就是存算分了。这本身不是一个新技术,就看如何应用了。

各式各样的存算分离

下图是盗用韩锋老师文章中的图。我实在画不好。不过不管哪种,可以看出对存储都有特定的要求。

存算分离架构,是指将数据存储和计算资源分开管理的数据库架构。传统数据库架构中,存储和计算资源捆绑,导致资源扩展受限,存算分离架构通过将数据存储和计算功能进行分离,数据存储通常使用独立的分布式存储系统或数据库管理系统有单独的存储资源的管理服务,计算资源通过弹性计算集群来提供,实现资源的独立扩展和灵活配置,满足不同规模业务的需求。

下面看看参天的架构,类似于集中式存算分离架构。

注意看,这里是全闪存架构。这个全闪存就给了存储一个很好的环境。数据库是一个IO密集型产品。所以IO是重中之重,那么存储是和数据库打交道的密不可分的。我看到不少数据库不管存储,甚至数据库在容器中。 我始终不认为不管存储的数据库产品是一个好的产品。我并不是说这样不好。只是个人不推荐在实际工作中使用。(练习测试还是可以的)

数据库的演进趋势

2021年信通院发布的数据库发展趋势的白皮书上也提到过,最近十几年,新兴硬件在经历学术研究、工程化和产品化阶段发展,对数据库系统设计提供了广阔思路。期间最主要的硬件技术进步是多处理器(SMP)、多核(MultiCore)、大内存(Big Memory)和固态硬盘(SSD),多处理器和多核为并行处理提供可能,SSD 大幅提升了数据库系统的 IOPS 和降低延迟,大内存促进了内存数据库引擎的发展。

这个趋势在我看来其实就是一体机,数据库一体化的趋势。一说到一体机大家可能首先想到的是ExaData。毕竟这是最早也是做的最成功的。对标ExaData并不丢人。只要实实在在去做。我个人并没有使用过包括ExaData在内的任何数据库一体机。但是也知道大概。有些一体机是就是纯硬件的组合堆叠。这其实不是一体机。

既然cantian的存算分离很像RAC,那么我个人建议不妨也走这个路线。因为这个已经被论证过可行的。毕竟世界五百强中绝对比例的企业使用了Oracle,而这些企业中又有绝对多的场景使用了数据库一体机。说明用户对此种架构是认可的。

不过这个路比较难走。一体机来说存储需要感知数据库的。所谓存储感知数据库就是:将SQL处理任务卸载到存储服务器上,存储服务器处理大量数据后将一小部分返回给数据库,那么数据库本身要处理的数据就少了,这对于数据仓库OLAP数据库带来的性能提升是非常大的。所以不是简单的拿几个阵列把线连起来这就是一体机了。这也是数据库智能运算的一个体现。

硬件一小步,软件一大步。上次在稼先社区活动提到过,不少系统因为种种因素不能优化的情况下。依靠硬件解决或者缓解了问题。而现在硬件进步是飞速的。不过有了好的硬件也不是说硬件和数据库是分离的。(这个和存算分离不冲突)

数据库与存储是他们之间是要协作的。刚才提及的存储要感知数据库,还有比如活动数据转移到闪存和随机存储器中,同时将活动性较低的数据保留在低成本磁盘上,从而以最低成本实现最高性能。这些就必然会涉及到软硬协调。这就是体现价值的地方。

机遇

现在进入国产数据库决战的时候了。由于有一种说法MySQL和PG这类开源不算信创。(今天这里不评论这个是非曲直)那么兼容和对接MySQL这样的环境,并且提供RAC这种高可用模式的,机会就很大。可以用参天丰富产品能力,快速对接存量数据库市场。

如果熟悉MySQL的人应该知道,MySQL很多方面越来越像Oracle了。对用户来说使用cantian能快速提升mysql能力,包括使用体验运维习惯向Oracle靠拢。

从上次活动中体现出了cantian团队的开放和包容,愿意接受批评。(据说上次的安装体验,内部已经开始整改了),所以cantian能为用户和生态伙伴提供积极的支持。就像打仗是后期是打后勤,那么数据库后期也是要拼产品的支持,这样用户才能放心使用。

相关推荐
Hacker_LaoYi18 分钟前
【渗透技术总结】SQL手工注入总结
数据库·sql
岁月变迁呀19 分钟前
Redis梳理
数据库·redis·缓存
独行soc20 分钟前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
你的微笑,乱了夏天1 小时前
linux centos 7 安装 mongodb7
数据库·mongodb
工业甲酰苯胺1 小时前
分布式系统架构:服务容错
数据库·架构
独行soc2 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘
White_Mountain2 小时前
在Ubuntu中配置mysql,并允许外部访问数据库
数据库·mysql·ubuntu
Code apprenticeship2 小时前
怎么利用Redis实现延时队列?
数据库·redis·缓存
百度智能云技术站2 小时前
广告投放系统成本降低 70%+,基于 Redis 容量型数据库 PegaDB 的方案设计和业务实践
数据库·redis·oracle
装不满的克莱因瓶3 小时前
【Redis经典面试题六】Redis的持久化机制是怎样的?
java·数据库·redis·持久化·aof·rdb