Photo by Emily Morter on Unsplash

文/老鱼

中国开源史,比大多数人想象的都要早。

1991年,“中国 Linux 第一人”宫敏博士用手提肩扛的方式,为中国背回了20盒磁带,磁带里装着80G的自由软件。从此国内技术人员用上了Linux,在中国点亮了开源的火种……

开源是促进技术创新的有力武器,在开源软件的加持下,中国软件人的创造力有如神助。不过,中国的开源软件虽然不少,但普遍集中于中下游的应用型开发,很少专注上游的原创性核心技术和系统级的开源项目。好在这种局面,近些年在逐渐改变。

2020年6月30日,openGauss数据库正式开源。还有2个月就是openGauss开源一年。

openGauss开源的这1年,中国开源在跌宕起伏中也逐渐蹚出了自己的前进方向。2019年8月,中国首个开源协议诞生。2020年9月,中国首个开源基金会成立。2021年3月,开源首次被明确列入“十四五”规划纲要中。每一件都是中国开源史上的重要里程碑。

而作为国内首个使用木兰宽松许可证v2并在本土开源托管平台Gitee托管的开源数据库项目,openGauss从一出生就备受各方关注。

openGauss为什么开源?开源的这一年进展如何?近日,老鱼独家专访了openGauss技术专家、社区TC(技术委员会)成员李士福,通过他我们来一探究竟。

热度快速攀升

从百度指数看,从今年2月开始,openGauss热度出现快速增长,这说明openGauss还是非常受欢迎的。

openGauss开源背景浅谈

“openGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss早期版本内核源自PostgreSQL,深度融合华为在数据库领域多年的经验,结合企业级场景需求,持续构建竞争力特性。”这是openGauss开源社区上对openGauss描述的。

肯定有人会说,既然openGauss基于PostgreSQL,为什么不直接贡献代码给上游,非要弄出个分支?

回答这个问题,本质是要回答2个问题:

华为为什么要做数据库?

openGauss为什么要开源?

华为做数据库主要是自身业务需求,华为数据库最早诞生于2001年,源自运营商业务需求,最初版本名为GMDB。时至今日,华为自研数据库在自身业务有着大量的应用。(参见老鱼此前文章《华为高斯战记》);

华为开源高斯数据库,创建openGauss开源社区有两方面的原因,其一、数据库是数字经济时代的核心基础设施,中国这么多年来无数组织和团队投入了很多资源,但到目前为止没有特别成功的,所以,华为将多年的积累开源出来,加速产业的发展,通过社区协作,提高效率。其二、打造自己的计算生态。

毕竟,开源代码虽然无国界,但人却有国籍。

李士福说,鲲鹏是计算产业,ICT发展到现阶段已经不是单产品和技术的竞争而是生态层面的竞争。在华为计算产业生态中,openGauss是不可缺少的一环,是基础软件皇冠上的明珠。在生态中,因为有了openGauss就可以打通从硬件到软件的全栈创新。

对于计算产业,华为的策略是硬件开放、软件开源、使能伙伴、发展人才,否则,仅靠华为一家生态是做不起来的。这就要求华为必须要懂得与生态链上的伙伴们去分享利益。所以,华为开源了openGauss。支持伙伴基于openGauss打造自有品牌的数据库商业发行版,支持伙伴持续构建商业竞争力。

差异化竞争优势

没有自研,就没有开源,如果说开源是水龙头,那自研就是保证水龙头水源供应的水库。

虽然openGauss内核源于PostgreSQL,但其中接近80+%的数据库内核代码是华为自研,在架构、事务、存储引擎、优化器及ARM架构上都有巨大改造。

李士福说,openGauss从一开源就主打企业级开源数据库,有众多企业级特性是首次通过开源数据库的形式开放出来,在企业级方面的能力要比其他开源数据库强。

例如刚刚发布的openGauss 2.0.0版本,这是openGauss社区发布的第一个Release版本。2.0与之前版本保持兼容的同时,也新增了众多的新特性,尤其是在性能、安全、运维上有了更大的突破。

在性能方面,通过持续架构和工程优化,分析40万条业务场景SQL流,制定分类固化典型短事务类型存储引擎接口,Bypass SQL优化器,实现SQL效率提升30%。在SQL执行计划生成阶段,通过动态剪枝方法,提升搜索效率20%。针对存储引擎的无锁优化算法,提高了用户线程数据操作的并行度,吞吐率提升50%。

通过这些优化,openGauss 2.0在四路鲲鹏服务器上性能达到了230万tpmC,使基于单台通用服务器进行超高性能数据库部署成为现实。

在数据安全方面,2.0版本采用客户端语法解析机制,在客户端对数据进行加解密,安全传输到openGauss数据库,并以密态的形式计算和存储,实现端到端的数据保护。通过高效加密引擎,密态数据的处理、查询性能损耗不超过5%。

在运维方面,针对数据库应用和开发中常见的索引设计、慢SQL诊断等痛点,2.0版本的智能索引推荐,对启发式算法和假设索引验证算法进行了深度优化,可解决90%以上的索引配置问题,达到人工调优水平。对慢SQL的智能诊断率达到90%以上。

开源后社区参与度

自从openGauss开源之后,究竟社区参与了多少?这是判断一个开源项目是否具备可持续性的重要指标。

据李士福介绍,截止至2021.04.27,openGauss社区官方网站访问量78万+;官方网站访客人数7万+;官方网站安装包下载量16万+,下载遍及全球49个国家328个城市;社区开发者人数1200+;社区累计需求代码PR提交数达到2600+,累计Commit数达到4500+。

有超过20家企业签署社区CLA,参与社区代码贡献。并且,其中有6家合作伙伴发布基于openGauss的商业发行版。

值得注意的是,海量数据基于openGauss商业发行版 ”海量数据库(Vastbase)成功入围2021央采(中央国家机关软件协议供货采购项目)名录。

云和恩墨基于openGauss商业发行版“MogDB”已经落地邮储银行、民生银行。

作为一个开源不到一年的开源项目,openGauss社区的发展速度令人吃惊的,成果也是丰硕。

截至目前,openGauss已经成立包括OM、In-place Update、IoT、AI等13个专项兴趣小组(简称SIG),包括海量数据、云和恩墨、工商银行、清华大学等多个组织的成员发起或参与到社区的各个SIG小组,带领小组成员拓展技术方向,贡献新特性,实现下一个版本的技术规划。社区技术委员也持续运作,openGauss社区开放治理日趋完善。

显然,经过近一年的发展和沉淀,openGauss无论从技术演进、社区生态建立、商业落地均已进入快速成长期。

但这只是开始,还远远不够。李士福说,未来openGauss将围绕客户场景和需求持续构建更多竞争力,打造世界级的数据库开源社区。

写在最后

开源是一个高度国际化的产业,中国真的能孵化出世界级开源项目吗?

过去,中国开源项目一直呈现小而散的碎片化状态,缺少科技巨头参与和专业的运营团队,缺乏长期持续运营和投入,难以形成强大的生态体系,而这些问题,在openGauss上都不是问题。

如果,年轻的openGauss社区能真正为数据库产业生态去持续投入推动发展,老鱼相信,未来几年,中国或许真就能孵化出世界级开源项目。

你「在看」吗?

linux服务器科学上网,开源一年,openGauss诠释什么是快速成长相关推荐

  1. 如何提升 Linux 服务器安全的开源工具和技巧?

    本文基于我作为初学者迄今所学的知识,详细介绍了六个简单的步骤,以提高个人使用的 Linux 环境的安全性.在我的整个旅程中,我利用开源工具来加速我的学习过程,并熟悉了与提升 Linux 服务器安全有关 ...

  2. Linux 服务器代理 上网

    Linux 服务 一键安装服务代理上网 yum install squid -y 安装完成之后,配置配置文件,可以使用下面的配置文件 /etc/squid/squid.conf 更改http_port ...

  3. Linux服务器的gou,开源跨平台移动项目Langou【简介】

    Langou简介 Langou是一个跨平台(Android/iOS)前端开发框架,核心代码使用C++编写,底层基于OpenGL绘图,上层实现了一个精简的排版引擎以及一个JS/JSX运行环境.目标是想实 ...

  4. 服务器windows模拟linux环境,科学网—Windows不用虚拟机或双系统,轻松实现shell环境:gitforwindows - 刘永鑫的博文...

    windows缺少shell命令支持 用过Linux服务器分析数据的小伙伴,一定对Linux强大Shell命令所折服,经常会感觉windows缺少这些命令而感觉不方便. 还有想学习Linux Shel ...

  5. 局域网内Linux服务器使用本地Windows代理上网

    场景: 实验室Linux服务器无法上外网,使用麻烦,可利用windows本机的网络通过代理上网. 解决方案: 首先确保本机和服务器在同一局域网内,ping彼此的IP可以互相ping通,windows注 ...

  6. 太好用了!Linux服务器上必备的4个开源工具

    点击上方关注 "终端研发部" 设为"星标",和你一起掌握更多数据库知识 开源最前线(ID:OpenSourceTop) 猿妹编译 链接:https://open ...

  7. 内网linux服务器通过CCproxy代理上网

    内网linux服务器通过CCproxy代理上网 安装CCproxy软件 配置网络代理端口 设置 账号 服务器端 本教程记录了通过局域网内能访问外网的Windows平台,使用CCproxy代理使内网节点 ...

  8. Linux做代理上网服务器

    Linux做代理上网服务器--送给那些想用Linux做网吧代理上网服务器的朋友 首先声明,会这个的老鸟不用看,我这只是给新手看的 首先安装好Linux,准备一台有两块网卡的服务器,一网卡接内网,另一网 ...

  9. Linux服务器被***不能上网

    环境:RHEL7 问题:服务器不能上网 故障排查:①查看网卡的配置文件是否被修改:②查看防火墙的配置情况:③ping网关:以上检查均正确无误: ④ping外网地址(如百度),返回"Time ...

最新文章

  1. mybatis的优缺点
  2. opencv-python处理图片的一些列操作之几何变换
  3. 破解 Windows 2003终端服务许可证
  4. mfc 按钮点第一下没触发消息 第二下才触发消息_34 详细干货 | 给回避型伴侣发消息,他们不回复,该怎么办?...
  5. oracle怎么将一列挪到另一列,详细讲解Oracle数据库的数据迁移方法
  6. jQuery中hover与mouseover和mouseout的区别分析
  7. Sql Server发布订阅如何添加新表如何不初始化整个快照
  8. python 动态相册_Python编程:制作电子相册
  9. python布尔类型运算_python布尔运算记录
  10. “我培训完JAVA,进了美团,美团氛围特别好,就是送餐特别累”
  11. cpu在计算机系统中的地位和作用是什么,电脑的核心-中央处理器(CPU)及其在游戏中的作用...
  12. lcd改led背光有光斑_So Easy! LCD液晶电视改LED背光,你也可以!
  13. html使用对话框接收密码,Excel黑科技 vba中用Inputbox对话框接受输入密码时显示为*...
  14. 网站地图制作百度地图google地图制作方法
  15. python统计套利_统计套利——反转定律
  16. bzoj 3894: 文理分科 最小割
  17. View的foreground属性
  18. EBS 分配指定快码维护权限
  19. dbd-mysql测试_DBD::mysql的cpan安装测试失败,找不到符号。OSX莫哈韦
  20. 【金字塔Python量化学习笔记】01课:利用Python导出价格数据

热门文章

  1. 由十多位架构师打造的《面试突击核心讲》到底有多强?肝完金三银四稳了。
  2. 甲骨文与亚马逊的云业务之争
  3. WPF和Silverlight到底有什麼不同?
  4. 电磁学讲义5:高斯定理
  5. 利用jQuery实现图片无限循环轮播(不借助于轮播插件)
  6. python全数字问题_关于python:获取一个数字的所有除数的最佳方法是什么?
  7. 基于 AT89C51 单片机的数字时钟设计
  8. 哪些Apple设备支持这次系统更新?来看你的旧Apple设备支持最新系统吗
  9. 图片路径前缀有blob?图片渲染不出来?
  10. 真值 原码 补码 反码 移码