“多写多读集群”被攻克,中国数据库产业“越过山丘”

2020年全国两会期间,合肥工业大学应用数学研究所所长檀结庆在媒体采访中提到:“国产数据库只占据不到7%的市场份额,尤其在数据库最核心的交易业务中,鲜有能跟甲骨文同台竞争并实现替换的产品。”

彼时“去IOE”浪潮已经兴起十多年的时间,但囿于性能、稳定性等客观因素,银行、能源、电信等传统业务,对国产数据库依然是“不敢用、不愿用、不想用”的态度,无形中为国产数据库产业制造了一个天花板。

现在,这样的景象正在成为过去式。

华为数据存储与优炫软件日前联合发布“数据库存算分离联合解决方案”,同时推出了高可靠、高性能共享存储多写多读集群数据库解决方案,旨在通过先进的存储技术和创新的设计,满足金融、运营商、能源、制造、政务等传统业务场景下的数据库替代需求。

放在数智化转型的语境下,这样的合作到底意味着什么,能否打破国产数据库产业的天花板?

01 国产数据库:百花齐放,多而不强
和操作系统、中间件等基础软件相比,数据库是国产替代最为迅猛的市场。然而外界对国产数据库的印象,看起来并不太乐观,用一句话来形容的话:数量上百花齐放,市场竞争力却只能说“多而不强”。

为何会出现这样的局面?外界的讨论有很多,并产生了两种主流观点。

一种说法是国产数据库的起点比较晚。

早在1978年,Oracle就推出了第一版数据库,那时候中国的信息化转型进程还无从谈起。2000年前后,国内出现了第一批数据库企业,但全球数据库产业已经走完了竞争、并购、退出的过程,形成了典型的IOE格局,I是指服务器提供商IBM,O是指数据库软件提供商Oracle,E则是指存储设备提供商EMC。

2014年后,在政策和市场红利的驱动下,国产数据库产业百花齐放,却未能改变Oracle、IBM等主导市场的格局,国产数据库只能占领一些缝隙市场。国产数据库的数量越来越多,结果却是高度的碎片化。

图:2023年墨天轮中国数据库排行榜每月收录数量

按照信通院与墨天轮的统计,目前国内有280多个数据库产品。可稍微再深挖一些,超过60%的国产数据库厂商不足100人,超过500人的企业不到10%,再加上协同合作的不足,原本就相对薄弱的研发能力无法形成合力,难以进入金融、能源等“稳定性大于天”的业务场景,生存环境一直比较艰难。

另一种解释是国产数据库的架构问题。

2008年左右,在阿里等互联网巨头的倡导下,“去IOE”浪潮如火如荼。当时中国互联网已经进入到高速增长期,出现了双11购物节等数据量和用户量激增的场景,而IOE架构欠缺横向扩展能力,无法满足激增的性能诉求和灵活扩容诉求,一些企业开始使用通用服务器打造灵活易扩展的分布式数据库。

在数据库的架构上,为了消除不必要的数据搬移延迟和功耗,看似提高效率并降低了成本的存算一体架构,逐渐被互联网企业所追捧。存算一体的优势很明显,短板也同样明显。为了实现高可靠,通常采用一主多从的架构,多个从节点大部分时间都处于闲置状态,导致CPU资源利用率极低。而且服务器出现故障后,无法自动切换,需投入大量人力和时间手工恢复数据。

即使达梦、南大通用等老牌国产数据库厂商,仍在坚持存算分离架构,可当整个市场的注意力转向时,一两家企业无法左右行业的风向。像银行这样对稳定性要求苛刻的传统业务,由于国产化数据库无法满足需求,不得不把订单交给国外厂商。

当存算一体架构被越来越多人诟病,数据传输性能的短板被填补后,存算分离的架构再度被推向台前。华为数据存储与优炫软件的合作,就是新背景下的叙事,试图用软硬结合的方式闯出一条新路。

02 多写多读集群:难题背后的新解法
存算分离的概念不难理解,简单地说就是分别构建计算资源池和存储资源池,全局共享一份数据,一些不必要的消耗可以被避免,进一步提升了数据库的性能,即使某个服务器出现了故障,也不会导致数据丢失。

在存算分离的架构下,华为数据存储与优炫软件共同发布了“数据库存算分离联合解决方案”,主要包含三个子方案:

一是主备集群部署方案,采用数据库一主一从架构,保证业务高可用,并具备易部署、易管理等特点,适用于OA、门户、邮箱、订单管理等业务系统;

二是读写分离集群部署方案,采用一主多从架构,通过存算分离+主从数据强一致性技术确保从节点可读,具有高性能、易扩展、高可靠等优势,适用于金融账务系统、ERP系统、CRM系统、生产制造、研发系统等中大型关键交易应用;

三是多写多读集群部署方案,采用多主架构,通过共享存储+SRAC技术确保全局节点数据读写强一致性,并达成多写多读、负载均衡、脑裂控制等效果,具备极高的可靠性与性能扩展潜力,适用于金融、电信、能源、交通、财税、生产制造等行业中对可用性、性能要求极高的大型核心交易系统。

三个子方案对应着不同的业务场景,其中最为瞩目的正是多写多读集群部署方案,在很大程度上关系着国产数据库能否在最核心的交易业务中实现对Oracle RAC的替代。

以一个常见的支付场景为例:当银行拒绝用户的支付请求时,需要快速查询用户过往的支付习惯,判断支付请求是否有风险,同时以弹窗的方式进行风险提示。这就需要数据库有很高的处理复杂事务的能力,业务的连续性要求高、绝对的高可用性、业务和数据的一致性,以及一定的可扩展性。

国内对RAC的替代由来已久,大多采用三种方式:中间件模拟、分布式数据库以及类似RAC的技术路线。优炫软件的“多写多读集群部署方案”,采用的就是RAC的路线,可以直接进行国产替代。

除了优炫软件持续10年时间的高压投入,存储性能在攻克多写多读集群的难题中扮演了至关重要的角色。

想要实现多写多读集群,存储环节面临着多个节点并发读写、极高的并发吞吐量、高可靠性等挑战,华为OceanStor Dorado全闪存存储50μs的极致时延、2100万IOPS和极致稳定的 SmartMatrix 全互联架构,让整体性能比同等配置的普通存储提升了30%,可满足不同类型的交易型业务诉求。

数据库系统遵循“木桶理论”,硬件和软件任何一环存在短板,都将制约数据库的发展。华为数据存储和优炫软件的合作,无疑为整个数据库行业提供了新的解题思路:优炫数据库的软件优势和华为OceanStor闪存存储的硬件优势融合后,原先横亘在国产数据库头上的“魔咒”悄然被解除。

03 越过山丘:行业已经形成了新共识
如果说十几年前的“去IOE”浪潮中,过于聚焦互联网业务的需求,选择性忽略了传统业务的诉求。华为数据存储和一众数据库厂商的联合创新,目的正是为了关键行业的核心系统上,不断缩小与国际领先梯队在性能、可靠性上的差距,提升国产数据库的综合竞争力。

特别是在“存算分离”架构上,不只是优炫软件,华为数据存储已经和不少数据库厂商推出联合解决方案,在不少领域实现了跨越式升级。

比如万里数据库与华为数据存储联合发布的“存算分离&多主架构联合创新方案,突破了数据库多读多写的业界难题,大幅提升了数据库性能,同时降低系统的建设成本。以性能为例,通过数据库跨节点缓存池化技术,实现了全局表并发读写、事务并发处理能力,相比于传统的主备数据库和分片数据库,性能在不同场景下可提升10倍。

再比如华为数据存储与南大通用共同发布的“金融核心级数据库高可用解决方案”,基于存算分离+共享存储架构,联合GBase南大通用数据库和华为OceanStor闪存存储,提供了满足金融核心系统要求的高性能、高可用数据库解决方案。

其中一个不可小觑的创新是双重容灾机制,在应用层实现了基于逻辑复制的数据库容灾、备库可读,在存储层依托OceanStor闪存存储HyperMetro A-A双活能力,确保数据高效、完整复制到容灾站点,且不影响工作站点性能,确保RPO=0,确保数据不丢失、业务快速恢复,满足金融核心系统的业务要求。

国产数据库以往被频频诟病各自为战,对比IOE这样的“黄金组合”,国内数据库市场可谓一盘散沙。不同厂商间缺少密切的合作,无法构建一个良性生态系统,无法脱离国外品牌为主导的生态圈,导致多而不强的市场格局。

优炫软件、万里数据库、南大通用、海量数据……华为数据存储就像是一条纽带,把不同数据库厂商凝聚在了一起,也许现阶段的生态协作还不是特别紧密,但“存算分离+共享存储架构”已经是一种行业共识。

借用一位数据库从业者的说法:国内数据库行业并不缺少优秀的工程师,重要的是找到正确的问题与正确的方向去发力。

沿循这样的逻辑,随着越来越多的数据库厂商选择华为作为伙伴,和华为数据存储进行联合方案创新,一个有利于国产数据库产业崛起的良性生态,已经初具雏形。在自主创新的道路上默默苦行了十几年的中国数据库产业,正在越过山丘,等待他们的,将是一个繁荣的数据库生态。

04 写在最后
市场咨询机构Gartner曾在2022年发布的《数据库中国市场指南报告》中预测:到2025年,中国分析型数据库市场来自海外厂商的将只剩下30%,交易型数据库市场海外厂商市场也只会剩下50%左右。

可能在一年多以前,不少人还会对Gartner的预测数据表示怀疑,毕竟IOE在交易型数据库市场还是不可替代的存在。伴随着“存算分离+共享存储架构”的不断创新、突围,Gartner的预测离现实已经越来越近。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

echarts 柱状图

记录echarts 柱状图基础案例以及相关配置。 1.基础柱状图 const myChart this.$echarts.init(this.$refs.echartsZx);const option {title: {text: 本周考试记录},//提示框tooltip: {trigger: axis,axisPointer: {type: shadow}},xAxis: {type: category,data: [Mon, Tue, W…

im6ull学习总结(二)Framebuffer 应用编程

1 LCD操作原理 linux中通过framebuffer驱动程序来控制LCD。framebuffer中包含LCD的参数,大小为LCD分辨率xbpp。framebuffer 是一块内存 内存中保存了一帧图像。 关于图像的帧指的是在图像处理中,一帧(Frame)是指图像序列中的单个…

【新版Hi3536AV100性能果真强悍】

Hi3536AV100是针对多路高清/超高清(1080p/4M/5M/4K)智能NVR产品应用开发的新一代专业高端SoC芯片。 Hi3536AV100集成了ARM Cortex-A55八核处理器和性能强大的神经网络处理器,支持多种智能算法应用。 Hi3536AV100支持32路1080p多协议解码及4路…

OpenCV-Python(21):凸缺陷检测及点到多边形最短的距离求解

学习目标 凸缺陷的查找求某一点到一个多边形的最短距离不同形状的匹配 凸缺陷 前面我们已经学习了轮廓的凸包,对象上的任何凹陷都被成为凸缺陷。OpenCV 中有一个函数cv2.convexityDefect() 可以帮助我们找到凸缺。函数使用如下: hull cv2.convexHull…

【量化】蜘蛛网策略复现

文章目录 蜘蛛网策略研报概述持仓数据整理三大商品交易所的数据统一筛选共有会员清洗数据计算研报要求数据全部代码 策略结果分析无参数策略有参数策略正做反做 MSD技术指标化 蜘蛛网策略 策略来自《东方证券-股指期货趋势交易之蜘蛛网策略——从成交持仓表中捕捉知情投资者行为…

C#学习笔记 - C#基础知识 - C#从入门到放弃 - C# Windows窗体技术及基础控件(二)

C# 入门基础知识 - C# Windows窗体技术及基础控件 第12节 Windows窗体技术及基础控件12.8 Label 控件12.9 Button 控件12.10 TextBox控件12.11 RichTextBox 控件12.12 Timer控件12.13 CheckBox 控件12.14 RadioButton 控件12.15 ComboBox 控件、ListBox 控件和CheckedListBox 控…

什么是 NLP (自然语言处理)

NLP(自然语言处理)到底是做什么? NLP 的全称是 Natural Language Processing,翻译成中文称作:自然语言处理。它是计算机和人工智能的一个重要领域。顾名思义,该领域研究如何处理自然语言。 自然语言就是我…

构建全场景解决方案,中国移动磐维数据库赋能数字化建设加速向前

【引言】随着数字化转型的加速,数据成为企业的核心资产,数据库作为数据的基础设施,承载着企业的业务发展和创新能力。如何构建一个高效、稳定、安全的数据库平台,满足不同场景的数据需求,是企业面临的重要挑战。本文将…

前端必须的服务端项目,node + express (这篇文章就够用)包含源代码

作为一个前端程序员,刚开始入门的时候,你觉得只要学习前端代码(js css html)就行了,实际上,到后面很多知识都涉及到服务端,在我们学习的过程中难免需要写一些 demo。比如在浏览器的缓存、或者…

公司防泄密软件监控员工哪些行为?

公司防泄密软件通常监控员工在使用电脑和其他存储设备时的一系列行为,以确保数据安全和防止敏感信息泄露。以下是一些公司防泄密软件可能监控的员工行为: 文件访问和操作: 软件可能会监控员工对文件的访问、打开、编辑、复制和移动操作。异常…

基于鸿蒙OS开发一个前端应用

创建JS工程:做鸿蒙应用开发到底学习些啥? 若首次打开DevEco Studio,请点击Create Project创建工程。如果已经打开了一个工程,请在菜单栏选择File > New > Create Project来创建一个新工程。选择HarmonyOS模板库&#xff0c…

【MYSQL】-表的约束

💖作者:小树苗渴望变成参天大树🎈 🎉作者宣言:认真写好每一篇博客💤 🎊作者gitee:gitee✨ 💞作者专栏:C语言,数据结构初阶,Linux,C 动态规划算法🎄 如 果 你 …

Redis管道

问题引出 Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。一个请求会遵循以下步骤: 1 客户端向服务端发送命令分四步(发送命令→命令排队→命令执行→返回结果),并监听Socket返回,通常以阻塞模式等待服务端响应。 2 服务端…

JS本地持久化

要将数据持久化到本地存储中,可以使用浏览器提供的localStorage或indexedDB等机制。下面分别介绍这两种方式的用法: 1.使用localStorage // 存储数据 localStorage.setItem(key, value);// 获取数据 const data localStorage.getItem(key);// 删除数据…

B (1038) : DS哈希查找—二次探测再散列

文章目录 一、题目描述二、输入与输出1.输入2.输出 三、参考代码 一、题目描述 定义哈希函数为H(key) key%11。输入表长(大于、等于11),输入关键字集合,用二次探测再散列构建哈希表,并查找给定关键字。 二、输入与输…

用户规模破亿!基于文心一言的创新应用已超4000个

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

Oracle数据库安全3大件的安装文档

Oracle数据库安全3大件是:加密,审计和脱敏。 加密 加密即TDE(透明数据加密),属于Oracle高级安全选件。 安装文档见:Oracle Database Advanced Security Guide 3 Configuring Transparent Data Encryptio…

1.3MySQL中的自连接

自己的表和自己连接,核心:一张表拆为两张一样的表。 语法:select 字段列表 from 表 [as] 表别名1,表 [as] 表别名2 where 条件...; 关于怎样把一个表拆分成一个表,只要给它们分别取别名就行 categoryidpidcategoryname21信息…

Analytify Pro Google Analytics Goals Addon谷歌分析目标插件

Analytify Pro Google Analytics Goals Addon谷歌分析目标插件是一款极其巧妙且具有开创性的工具,它赋予用户细致跟踪和全面分析其网站性能的卓越能力。有了这个非凡的插件,个人可以毫不费力地建立并认真监控他们的Google Analytics目标,从而…

代码随想录 121. 买卖股票的最佳时机

题目 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利…