开源数据库这么香,为什么我们还要下功夫自研?

摘要: 从开源到自研,数据库领域的那些门门道道。

谈到数据库,必然会谈及开源。

但在很长的一段时间内,以关系型数据库为例,它一直是商业公司握在手中的专利,整个数据库市场被这些大公司所垄断瓜分,直到90年代MySQL第一个开源版本的出现,才有了如今开源开放的数据库市场。

根据DB-Engines最新公布的数据库受欢迎度排名,前10名中,仅开源数据库就占据了7席,具体包括关系型数据库MySQL、Postgre SQL,非关系数据库MangoDB、Redis、Elasticsearch和Cassandra。

也正是因为开源数据库如此广受欢迎,越来越多的商业公司也愿意基于这些开源数据库做更深度的优化。

为什么要基于开源数据库自研?

虽然开源数据库没有高昂的商业授权许可费用,但使用开源数据库却存在许多问题,尤其是在以数据支撑的互联网时代,单枪匹马不可能扛住各种意外状况。

不少开源数据库的易用性差、配套能力也较弱,需要不断地维护,而且一旦遇到数据丢失问题,很难快速恢复,造成的损失不可估量。与此同时,开源数据库还得面临服务器、数据库维护升级、人力运维等各种大大小小的成本支出,很难满足业务的快速扩张以及可持续发展。

这种时候,不少云厂商就会做一些让DBA运维人员一劳永逸的工作,让开源数据库上云,包揽底层那些“琐碎”的运维工作。

以华为云RDS系列产品为例,RDS for MySQL、RDS for PostgreSQL服务,以及DDS文档数据库服务(文档类型Mongo),都是基于开源打造的数据库服务,聚焦最基础的云原生开发对云数据库的要求,主要面向数据规模较小,性能要求一般的业务场景,提供极致性价比的解决方案。

但问题随之而来,开源数据库上云只能解决中小企业的简化部署、运维、调优,极致性价比等诉求,却无法满足金融、政企等对数据安全、响应速度、可靠、可用有严苛要求的大型企业。

权衡利弊下,许多企业都会选择开源数据库+商业数据库的组合模式,保证数据的可用可靠。

GaussDB系列就是结合华为积累多年的数据库研发经验打造的新一代分布式数据库产品系列,立足自研创新,基于统一的架构,一方面拥抱并兼容MySQL、Mongo等生态,另一方面打造openGauss生态,主要面向政企客户,强调高性能、高可靠、高安全等方面诉求。

在关系型数据库方面,华为云今年7月正式发布上线了云原生GaussDB(for MySQL)数据库。同时,基于华为开放生态的openGauss内核打造的分布式数据库GaussDB(openGauss)也会在年内正式商用发布。

非关系型数据库方面,重点打造云原生GaussDB NoSQL多模数据库系列,支持文档类型(Mongo)、宽表类型(Cassandra)、时序(Influx),K-V(Redis)等多协议接口。目前, GaussDB(for Mongo)、GaussDB(for Cassandra)、GaussDB(for Redis)已上线。

相较于开源数据库,GaussDB系列数据库支持NDP(near data process)技术,可以让计算和数据进行融合,加速数据的处理,从而大幅提升整体的性能。

以GaussDB(for MySQL)为例,其基于华为最新一代DFV分布式存储,采用计算存储分离架构,支持1写15读的只读节点的极速扩展,最高支持128TB的海量存储,可实现超百万级QPS吞吐,单节点相比原生MySQL性能提升7倍。

GaussDB NoSQL则拥有极强的多模数据管理能力,在并发读写能力、扩容伸缩、故障重构时间、备份效率、恢复效率等方面,相比纯开源软件能力有了质的飞跃。

最关键的是,华为GaussDB数据库全面支持包含鲲鹏和x86在内的多样化算力,具备从芯片到服务器、存储、操作系统、数据库的E2E研发能力,因此具备了数据库软硬性能调优的独特优势,比如GaussDB数据库DB算子下推存储,进而实现性能较友商数据库提升了30%。

openGauss,打造新的开源数据库生态

一方面积极拥抱既有的开源数据库生态,华为云也在打造openGauss生态。

openGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行,其内核源自PostgreSQL,并着重在架构、事务、存储引擎、优化器等方向持续构建竞争力特性。在ARM架构的芯片上深度优化,并兼容x86架构。其技术特点如下:

基于多核架构的并发控制技术、NUMA-Aware存储引擎、SQL-Bypass智能选路执行技术,释放处理器多核扩展能力,实现两路鲲鹏128核场景150万tpmC性能;

支持RTO<10S的快速故障倒换,全链路数据保护,满足安全及可靠性要求;

通过智能参数调优、慢SQL诊断、多维性能自监控、在线SQL时间预测等能力,让运维由繁至简。

华为于2020年6月开放了openGauss社区版本源代码(https://opengauss.org),鼓励有能力的合作伙伴推出基于openGauss的数据库,共同繁荣数据库产业生态。

目前,华为云已经推出了基于openGauss内核,增强分布式能力的商业版本GaussDB(openGuass),后续也会有更多商业合作伙伴加入。

需要强调的是,openGauss是开放的生态:架构开放、代码开放、技术开放和社区开放,不会因为是华为主推的,就让数据库生态从封闭的Oracle走向另外一个封闭的“新的Oracle"。openGauss这种方式,能让更多“同道中人”一起来解决缺陷,理解这个架构,从而维护起来更加方便。

对于企业来讲,只有选择开放的生态,才能让自己的业务具备更好的连续性,如果从一个封闭的生态改造为另外一个封闭的生态,本质上并没有解决业务连续性的问题。

毕竟不开放的生态是没有活力的,数据库软件尤甚。

 

点击关注,第一时间了解华为云新鲜技术~