openGauss的开源数据库之路

openGauss是一款开源关系型数据库管理系统,深度融合华为在数据库领域多年的经验。希望通过开源的魅力吸引更多的贡献者,共同构建一个能够融合多元化技术架构的企业级开源数据库社区。

  • 2019年9月19日,在华为全联接大会上,华为宣布将开源其数据库产品,开源后命名为openGauss。
  • 2020年6月30日,openGauss数据库源代码正式开放。

openGauss内核源自PostgreSQL,并着重在架构、事务、存储引擎、优化器等方向持续构建竞争力特性,在ARM架构的芯片上深度优化,并兼容X86架构。

openGauss采用木兰宽松许可证(Mulan PSL v2),允许所有社区参与者对代码进行自由修改、使用和引用。openGauss社区同时成立了技术委员会,欢迎所有开发者贡献代码和文档。

此图像的alt属性为空;文件名为2020120108255728.jpg

openGauss技术委员会主席田文罡接受采访

openGauss开源数据库之路

openGauss技术委员会主席田文罡在采访中表示,作为一款企业级开源数据库,openGauss的主要优势在于高性能和备机可用性。

田总在2020数据技术嘉年华的演讲中列出的openGauss演进特性

“性能不是万能的(解决一切问题),但没有性能也万万不能。”提升性能可以降低采购硬件的成本。部分实时类场景对性能有严苛要求,海量数据处理复杂性也需要性能。

openGauss内核基于PostgreSQL进行了大量优化。在架构层面PostgreSQL是多进程架构,为了提高并发度,openGauss将其进一步优化成了多线程架构。

PostgreSQL主要关注行存(支持交易型业务),openGauss后期进一步增加了列存(支持分析型业务)和内存(支持高性能计算)引擎。

如上图我们可以看到openGauss将在今年12月份的发布计划中加入了4路鲲鹏优化,通过鲲鹏芯片的应用来提升性能,尤其针对鲲鹏ARM服务器做了更多垂直的优化整合,可以说openGauss对ARM芯片支持更优。

此外,众核时代已至,但不同CPU的核访问时延和带宽不同,openGauss开源数据库还针对多核情况进行了性能优化,利用数据分区、XLOG并行化等方式来提高数据库性能。    

在备机可用性上,支持1主8备,备机可读。并且对日志进行了流水线和管道化处理,在并行恢复上,日志流水线完全并行处理,极大的提高了可用性,10秒内就可以完成备机到主机的切换。在长期演进上,openGauss数据库后续会采用Raft协议,确保一机多备情况下副本之间的强一致性。

openGauss后续演进方向

openGauss通过与AI引擎的结合,让它具备一定的自运维、自管理、自调优、故障自诊断和自愈的能力。田总在提到开源数据库的后续演进方向说到了两方面—— AI for DB和DB for AI,目前openGauss数据库在做的参数调优,自动索引推荐等能力都是AI for DB。小编比较关注的是DB for AI。

我们知道AI模型需要对数据进行训练然后再应用。一般大家是从数据库里抽取数据放入AI模型中训练,需要搭建系统和组件,而且还涉及海量数据反复传输,极为不便。未来数据库会将AI算法内置到数据库中,直接在数据库中进行AI模型训练,在这方面,目前openGauss内部有很多组件正在开发中。

另一个关注方向就是新硬件的出现是否会为数据库带来革命性变化。以前数据库主要针对磁盘进行优化,平衡磁盘访问,围绕存储硬件进行设计和打造。存储性能很大程度直接决定数据库性能。通常数据库是块结构,1页8K,寻址单位是块存储(逻辑块寻址模式),但NVM介质的寻址方式是字节寻址。未来整个设计是否会转向以NVM为中心的新数据库,也是openGauss未来探索的一个大的方向。

总结

华为始终秉持“硬件开放、软件开源、使能伙伴“的整体发展战略,支持伙伴基于openGauss打造自有品牌的数据库商业发行版,支持伙伴持续构建商业竞争力。希望越来越多的贡献者加入openGauss社区,共同打造一个开源开放的数据库社区,把企业级的数据库能力带给用户。