我在MySQL原厂的那些年都经历了什么?( 二 )


另外也为我节省了大量的通勤时间 。 要知道 , 去一次Oracle在上海的办公室 , 来回要两个多小时的时间 。
由于这是一个全球化的团队 , 而且成员也比较有经验 , 所以大家的工作方式也很特别 。 基本上每个人都专注于自己的工作 , 大家相对比较独立 。 需要合作的时候 , 会通过pigeon、邮件或电话沟通 。
我们每周会开一次周会 , 大家各自汇报自己的工作进展情况 , 并进行讨论 。 每年组织一次team meeting , 大家从全球各地汇聚到一起 , 总结上年的工作 , 规划明年的目标 , 再谈谈理想、聊聊人生 。
在MySQL , 研发的流程非常规范 。 以一个bug修复为例 , 大致要经历以下几个步骤:

  • 首先 , 需要根据bug report来分析并复现bug , 然后找到修复方法 , 经过和5级大佬的讨论后 , 确定修复方案并通过bzr创建新的代码分支;
  • 编码完成后 , 还需要创建对应的MTR test case , 并和修复代码一起 , 放到reviewboard上面请大佬review 。 而Review的过程可能会持续好几轮 , 因为像Marko这样的大神review的时候非常严谨 , 不会放过任何一个出问题的细节;
  • Review完成后 , 需要把要提交的代码放到测试集群上面去测试 。 这个自动化测试系统非常强劲 , 它会同时在多平台上面编译好debug和release版本 , 再并行测试;
  • 测试完成 , 确认没有问题后代码才能最终被合并到主干 。

我在MySQL原厂的那些年都经历了什么?文章插图
我的第一个提交
以上只是一个简单的bug修复过程 , 而对于更为复杂的特性开发 , 步骤还会包括前期的创建任务worklog , 并在worklog里面相应的填写HLD(High Level Design) , LLD(Low Level Design)等设计内容 , 并且开发原型等 。
我在MySQL原厂的那些年都经历了什么?文章插图
我做的check空间索引的特性worklog
在InnoDB工作的六年时间里 , 我一共做了461次提交 , 其中做过的主要特性包括InnoDB支持空间索引、透明加密、新的数据字典等等 , 以下是其中一些worklog的列表:
WL#6968InnoDB GIS: R-tree index support
WL#6455InnoDB: GEOMETRY datatypes support
WL#6745InnoDB GIS: support DML operation for InnoDB R-tree Index
WL#7740InnoDB GIS: Enhance Check Table for InnoDB Spatial index
WL#8548 InnoDB: Transparent data encryption
WL#9290InnoDB: Support Transparent Data Encryption for Redo Log
WL#9289InnoDB: Support Transparent Data Encryption for Undo Tablespaces
WL#9531InnoDB_New_DD: Enable table encryption and transparent compression
WL#9535. InnoDB_New_DD: Remove InnoDB system table and modify the view of their I_S counterparts
WL#9537 InnoDB_New_DD: Support InnoDB table import/export for new DD
在这六年里 , 自己感觉收获了很多很多 , 也体验到了像MySQL这样一个开源的数据库软件产品进行研发的整个过程 , 还了解了一个成熟的研发体系和国际化团队是如何运作的 。
和国外的大神们一起工作 , 不仅仅学习到了知识和技能 , 也从他们身上发现了另外一种与我们完全不一样的工作思维、生活习惯、乃至思维方式 。
离开
随着互联网公司的爆发式崛起 , 以及MySQL生态链的迅速发展 , MySQL团队的很多成员都获得了更好的发展机会而逐渐离开 。 而我也开始了和腾讯云数据库CDB内核TXSQL的不解之缘 。
巧的是 , 就在我离开MySQL不到一年 , Oracle就宣布关闭中国研发中心 。
对于Oracle来说 , 面对着诸如亚马逊、阿里、腾讯的强势冲击以及去O的浪潮 , 它将经历一段艰难的转型期 。 而对于MySQL来说 , 在可预见的未来依旧会是the world’s most popular open source database 。
身为曾经的MySQL人 , 我也会在腾讯继续助力MySQL的发展 , 通过CDB内核TXSQL为MySQL生态链贡献自己的力量 。
【我在MySQL原厂的那些年都经历了什么?】在后续的系列文章里 , 我将会陆续跟大家分享一些跟MySQL相关的有意思的事情 , 让大家更了解MySQL和它的腾讯版本TXSQL , 希望大家喜欢 。