2019年9月19日,在华为 CONNECT 大会上,华为宣布将开源其 GaussDB 数据库,开源后命名为 openGauss。
2020年6月30日, 华为兑现了这一承诺,在gitee上放出了openGauss的源代码,并成立 openGauss社区,网站为 opengauss.org。
从openGauss产品文档中可以看出,其在开源PostgreSQL基础上,做了非常多的改进,主要增强特性列举如下:
支持行存储和列存储
同时支持内存表和磁盘表,内存表支持持久化到磁盘。
支持blob/clob 大对象
支持主键/外键/check/not null 等约束
支持 视图/序列/触发器/存储过程/自定义函数/游标/同义词/schema 等数据库对象
支持分区表,目前只支持范围分区
支持 hint
支持wdr snapshot和DBE_PERF Schema,从而实现类似oracle awr的全面性能诊断手段。
支持全文检索
支持用户和角色
支持三权分立、强制访问控制、审计
AI:自带了Predictor、X-Tuner、Sqliag三个机器学习工具,可以预测SQL执行时间、自动优化数据库参数等。
NUMA化内核结构, 显著提升性能水平
因此,可以看出,openGauss 在功能、性能上的改进,是非常显著的,这里要向华为致敬!
但是,也有些非常不爽的地方,吐槽一下:
1) GaussDB 本来是分布式数据库,这里放出的openGauss却是从集群中阉割出来的单机版。既然都决定了开源,摆出了要拥抱社区建设生态的姿势,为何还留一手?这不禁让人质疑。
2)从2019年9月19日至2020年6月30日,有近9个月的时间,按说时间应该够充分了,但源码放出来后,马上就产生了大量的提交记录,集中在Readme.md, requirements.txt, modify comments,upgrade software version 诸如此类。表明根本就没准备好,在最后的时刻还在忙乱地东改西改。
3)文档的风格,依然是浓浓的盒装软件产品手册的风格,根本没有针对开源进行风格调整,使得简明扼要,通俗易懂。这也难怪,源码都是仓促阉割出来的,文档也是要对应阉割调整的。谁能告诉我,WDR, WLM, DBE 这些都是什么的缩写?
openGauss是好产品,但华为是真心要做开源吗?能把开源做好吗?




