暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB T 内核开发历程

原创 章芋文 2019-10-01
795

做数据库内核开发如在刀尖上跳舞,压力很大,但凡在内核架构与机制制定上有一丝没有考虑清楚,那么上线就一定会出问题,这会导致严重后果,因为一旦确定的方向进行不下去,就会导致推倒重来。一位核心研发工程师对笔者说。 

2007年,因为电信实时计费项目困境,华为开始组织人手研发内存数据库,项目代号GMDB,这是可追溯到的华为最早的数据库研发记录。 

当时,华为决定研发内存数据库的想法并不高大上,而是很单纯,完全不是外界所猜想的搞个数据库去售卖并干掉谁,纯粹只是因为在电信计费领域,华为解决方案找不到能与之较好契合的数据库,仅此而已。

 

众所周知,电信行业对数据库要求较高,尤其是可用性,定制化需求较多,涉及改动工作量大,而采用国外数据库,让原厂来配合改动,人家未必会配合。因此,无奈下,华为被迫走上了开发数据库的道路,以此来提升解决方案的竞争力。

 

不过,2007年的GMDB并没有取得大规模商用,只在小范围内进行试用,但这个版本却锻炼了一大批人。当时,国内对数据库内核开发知之甚少,有经验者寥寥,都是摸着石头过河。

 

但有苗不愁长,到了2010年,华为数据库研发团队开始对2007年版本进行全面重构,并写下了重构版本的第一行代码:“typedef struct st_database{...}database_t;”,数据库对象的定义。

 

从这个版本开始,华为数据库的定位已经不再局限于内存数据库,而是在向通用关系型数据库逐渐转变,重构过程中,开始融入大量非内存数据库的特性,这就是GaussDB OLTP的前身。

 

重构后的版本,质量上取得了显著提升,2012年,GMDB开始大规模商用,主要应用于电信计费领域。同时,在华为内部,众多配套的解决方案也开始使用GMDB。

 

对于每一个刚诞生的新产品,降落伞自己先跳,“狗粮”一定是华为自己先吃。一位核心研发工程师对笔者说。

 

GaussDB对外输出之前,华为也是从服务内部客户开始。但在华为,内部客户远比外部客户更苛刻更残酷。“往往只要有一点不满意,内部客户就会直接一个邮件捅到总裁或副总裁那里,连个喘息的机会都不给你,那是真的要命啊!”,一位核心研发工程师心有余悸地回忆说。在服务内部客户的过程中,GaussDB研发团队总是胆战心惊。

 

为了让Gauss OLTP数据库的内核变得更稳定,研发团队创造了最暴力的测试方法,并立下规矩,谁发现的问题,用例就用谁的名字来命名。在暴力测试方法及命名规则的双重刺激下,从刚开始几乎每半天就能测出问题,到之后一周甚至一个月才能发现一个问题。正是这样一步步地积累下来,让Gauss OLTP数据库的内核变得越来越强壮和稳健。因此,从2013年规模上线到2019年,6年的时间里,Gauss OLTP数据库没出过任何问题,这一点让团队成员极为自豪。 


华为强大的研发平台为Gauss OLTP数据库的产品质量提供了强有力的保障。在软硬件基础设施方面,华为过去几十年的积累非常深厚,有着整套完整的标准流程和研发支撑体系。Gauss OLTP数据库首席架构师告诉笔者,高手毕竟是少数,一个产品的开发不能完全依赖编码高手,在团队作战的时候,一个大的研发平台至关重要,这就是华为数据库的最大优势。


2017年,华为与招商银行开始就GaussDB进行联合创新;2018年3月,Gauss OLTP数据库开始在招商银行综合支付交易系统成功上线投产,顺利承接招商银行 “手机银行”和“掌上生活”两大App交易流水流量,日均请求量高达8500万,峰值TPS达到3500,截至目前,系统稳定运行。


如今招商银行的信用卡风警系统、零售实时风险警示系统、手机银行收支账单系统、一网通用户日志系统、客户经理平台系统、供应链金融服务平台系统、分布式交易链路追踪系统等多套业务系统已进入对接开发阶段,预计2019年底前将有17套系统采用GaussDB并投产上线。  

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论