范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

我在MySQL的那些年(一)

  | 作者 赖铮(Allen Lai)前MySQL官方团队成员,专注数据库内核开发近二十年,先后就职于达梦,Teradata,北大方正以及MySQL InnoDB存储引擎团队,是达梦数据库内核,方正XML数据库,以及MySQL InnoDB的GIS支持,透明加密功能的主要开发者。现任腾讯TEG云架构平台部数据库团队专家工程师,负责腾讯云MySQL数据库内核的研发。
  Part1 相遇
  2012年的春天,我正在张江的一栋橙黄色的大楼里,窗外的阳光很好,我跟我的小伙伴们正在一起奋力地敲打着键盘,随着一阵轻柔的电话铃响起,手机屏幕上显示出一个陌生的号码,"是不是又是骚扰电话?"没管他,我接着做自己的事情。但是手机一直在震动着,好像催促着我,我拿起电话接通,那头传来一个非常轻柔而且职业化的女声,"您好,我是Oracle的招聘顾问Amy,请问您现在方便吗…"。
  我的职业生涯从此与MySQL发生了交集。
  Amy告诉我MySQL InnoDB团队有意在中国招聘合适的数据库内核工程师,问我有没有兴趣加入。MySQL是什么,the world’s most popular open source database,邀请我加入?我想都没想就回答她:"当然有,而且兴趣很大!"
  Amy是个非常专业的HR,非常有效率的安排了我后面的面试事宜,怀着一丝忐忑和兴奋,我开始了进入MySQL团队的面试。
  面试第一轮:InnoDB团队manager,Calvin。Calvin是数据库领域的专家,早年中科大毕业出国的那批牛人之一(后续的文章我会专门介绍MySQL的牛人们)。
  面试第二轮:InnoDB性能优化专家Innam,Innam是缓冲池性能优化的作者。
  面试第三轮:InnoDB大神Marko。Marko是InnoDB创始团队成员之一,存储引擎技术的大神级专家。
  面试第四轮:InnoDB架构师Jimmy。Jimmy也是数据库内核的全能型专家,而且是之前是sybase内核团队的老大。
  完整的一套流程走下来,其实MySQL的面试并没有想象中的那么多规则和高难度,前后4轮,基本都是聊天,主要围绕以前做过的事情和对数据库内核的理解,在面试过程中,让我印象比较深(比较有趣)的是三件事:
  一个是Innam的口音实在太重,加上从遥远的加拿大打过来,我的英语听力也的确水平不高,所以好多问题都没听懂,当时真的是慌得一批。
  另外一个是Marko用google talk问了一个如何发现事务死锁的问题,他的打字速度超级快,以至于我认为对面是个打字机器,直到见到他真人才发现,他就是一台没有感情的程序机器(其实,Marko还是很有意思的一个人,后面我会介绍他的一些趣事)。
  最后,和Jimmy的面试是在一个南京西路的咖啡厅里面进行的,两个人似曾相识一般聊了很久,Jimmy是特别赞的一个人,很有亲和力。整个面试的流程总体感觉比较轻松,我也没有刻意准备,或许真的是幸运吧。
  Part2 团队
  就传统的软件企业来说,MySQL的团队架构相对比较扁平化,层级很少,像我这样的基础员工,离Oracle最大的老板Larry Ellison也就隔了五层。这里面的原因主要是Oracle收购MySQL后的很长一段时间里,基本保留了MySQL团队的原有架构和人员,只是做了一些简单接入。
  整个MySQL分为好几个大的团队,有MySQL kernel,MySQL replication和MySQL NDB等等,这些大的团队里面又细分为若干小的团队,比如:MySQL kernel团队里面又分为优化器,server层,InnoDB和QA等。
  当时,我所在的InnoDB团队里有base在美国的Calvin,Kevin,Jimmy,芬兰的Marko,澳大利亚的Sunny,加拿大的Innam,Michael,瑞典的Mattias,印度的Satya,保加利亚的Vasil,再加上中国的我,一共只有十一个人,却来自八个不同的国家,是一个完全全球化的研发团队。团队里的每一个人都是经验丰富的数据库内核程序员,比如:Marko是2003年就加入InnoDB的资历最深的大神,Sunny是日后的InnoDB manager,Kevin也是曾经参与过Falcon存储引擎开发的老将,Jimmy曾经领导过Sybase的研发团队等等。可以跟那么多大佬一起工作,实在是一件幸运的事情。
  2013 Team meeting in Shanghai
  右起:Jimmy,Yasufumi, Allen, Kevin, Marko, Shaohua, Mattias, Satya, Sunny, Vasil,Aditya, ??, Annamalai, Bin, Michael, ??, Krunal…
  Part3 工作
  在InnoDB工作,是一件非常开心的事情,因为可以在家上班,这一点说出来相信就有很多人羡慕了,而这对于一个每天需要接送孩子的家长(我)来说,更是非常难得的福利,不仅可以按照自己的节奏分配工作和生活的时间,另外也节省了大量不必要的通勤时间,要知道,去一次Oracle在上海的办公室,来回要两个多小时的时间。
  由于是一个全球化的团队,而且,成员也比较有经验,所以,大家的工作方式也很特别。基本上是每个人都专注于自己的工作,相对比较独立,需要合作的时候,通过pigeon、邮件或电话沟通。每周会开一次周会,大家各自汇报自己的工作进展情况,并进行讨论。
  除了周会,我们每年还会组织一次team meeting,大家从全球各地汇聚到一起,总结上年的工作,规划明年的目标,谈谈理想,聊聊人生。
  在MySQL,研发的流程非常规范。以一个bug修复为例,大致要经历以下几个步骤:
  首先,需要根据bug report来分析并复现bug,然后找到修复方法,经过和5级大佬讨论后,确定修复方案并通过bzr创建新的代码分支。
  编码完成后,还需要创建对应的MTR test case,并和修复代码一起,放到reviewboard上面请大佬review。Review的过程可能会持续好几轮,因为像Marko这样的大神review的时候非常严谨,不会放过任何一个出问题的细节。
  Review完成后,需要把要提交的代码放到测试集群上面去测试。这个自动化测试系统非常强劲,它会同时在多平台上面编译好debug和release版本,再并行测试。
  测试完成,确认没有问题后代码才能最终被合并到主干。
  我的第一个提交
  以上只是一个简单的bug修复过程,而对于更为复杂的特性开发,步骤还会包括前期的创建任务worklog,并在worklog里面相应的填写HLD(High Level Design),LLD(Low Level Design)等设计内容,并且开发原型等。
  我做的check空间索引的特性worklog
  在InnoDB工作的六年时间里,我一共做了461次提交,做过的主要特性包括,InnoDB支持空间索引,透明加密,新的数据字典等等,以下是其中一些worklog的列表:
  WL#6968 InnoDB GIS: R-tree index support
  WL#6455 InnoDB: GEOMETRY datatypes support
  WL#6745 InnoDB GIS: support DML operation for InnoDB R-tree Index
  WL#7740 InnoDB GIS: Enhance Check Table for InnoDB Spatial index
  WL#8548 InnoDB: Transparent data encryption
  WL#9290 InnoDB: Support Transparent Data Encryption for Redo Log
  WL#9289 InnoDB: Support Transparent Data Encryption for Undo Tablespaces
  WL#9531 InnoDB_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这样一个开源的数据库软件产品是如何进行研发的整个过程,也了解了一个成熟的研发体系和国际化团队是如何运作的。与国外大神们一起工作,不仅仅是学习到了知识和技能,也从他们身上发现了一些与我们完全不一样的工作,生活,乃至思维方式,这对我来说也是一种很新奇的体验。
  Part4 离开
  随着互联网公司的爆发式崛起,以及MySQL生态链的迅速发展,MySQL团队的很多成员获得了更好的发展机会而逐渐离开。而我也开始了和腾讯云数据库CDB内核TXSQL的故事。
  巧的是,就在我离开MySQL不到一年,Oracle宣布关闭中国研发中心。对于Oracle来说,面对着诸如亚马逊,阿里,腾讯的强势冲击以及去O的浪潮,它将经历一段艰难的转型期。而对于MySQL来说,在可预见的未来依旧会是the world’s most popular open source database,身为曾经的MySQL人,我也会在腾讯继续助力MySQL的发展,通过腾讯云MySQL的内核TXSQL为MySQL生态链继续贡献自己的力量。
  PS:在后续的系列文章里,我将会陆续跟大家分享一些跟MySQL相关的有意思的事情,让大家更了解MySQL和它的腾讯版本TXSQL,希望大家喜欢。

李玫瑾小天才的共同点是超强专注力,但父母常好心破坏比智商更重要的是情商,比成绩更重要的是专注力。很多孩子的学习不好,往往是因为专注力不够。有一个视频引起很多家长共鸣,纷纷说这不就是我家娃吗?只见孩子坐在那里写作业,9分钟时间里,只面对撒谎的孩子,父母怎么教育效果更好?要注意太严厉的后遗症很多家长对待孩子的撒谎,是一种恨铁不成钢的情绪。曾有妈妈跟我说,不怕孩子懒不怕孩子笨,就怕孩子骗人。更有家长认为,孩子骗人,就要重重的严厉惩罚,否则小时候就会骗人,长大后还得了?实13岁杭州男孩偷刷爸爸9万元,不是玩游戏,是跟爸爸有样学样养学霸还是有危险的,这不,杭州的这位爸爸,学霸儿子买了堆草,只花了爸爸9万元。杭州建德一位13岁的孩子,悄悄从爸爸的微信里转款,一次转个三四千元,暑假这一个月里,就转走了大概9万元68位高考状元父母有共性,不输在起跑线上,陶行知说出教育的秘密失败者各有原因,而成功者却都有共性,今天就让我们来看一看,是什么让孩子走向了状元与学霸的成才之路的,而这却被陶行知一语道破。一你会这样与孩子交流吗?有一期少年说,女儿被爸爸的一句话考上清华的学霸,是爷爷奶奶照顾大的农村女孩隔代教育也能成才一说到留守儿童,总是让我们很担心,没有父母陪伴身边的他们,怎么样能够出人头地?寒门,是否无法出贵子了呢?但,2020年的高考,让我们看到了留守儿童也有春天。湖南耒阳的留守女孩钟芳蓉孩子沙发摔下缝7针,妈妈哭诉店家,没想到评论区骂声一片孩子受了伤,妈妈的心一定非常痛,可是,为什么大家的评论,却是一边倒的?甚至还有网友给出了这样的诗讹讹讹,曲项向天歌,大海没加盖,悬崖未设坡。这到底是怎么回事?事件情况原来,有位夏妈好险!11岁男孩被妈妈罚跪第二天出走,留下一封信吓哭妈妈孩子离家出走了老家四川,在宁波打工的刘妈妈发现不对劲,赶到家里时,原来好好呆在家里的11岁儿子小飞已经不在了。20平米出租房的桌子上放着一张纸,看起来是从作业本上撕下来的,上面写满眼下最该吃的食材,5毛钱一斤,炖汤最滋补,赛过喝骨头汤莫愁厨路无知己,谁人不识小面姨。大家好,我是小面姨。今天小面姨给大家分享一道煎蛋萝卜汤美食做法。今年的天气,对于一直生活在我们关中西府地区的人来说,简直是一种让人无法形容的天气。从眼下最该吃的食材,5毛钱一斤,常给老人孩子吃,清热润肺真不错莫愁厨路无知己,谁人不识小面姨。大家好,我是小面姨。今天小面姨给大家分享一道萝卜蒸肉的美食做法。最近在我们北方地区,有一种秋冬时节的蔬菜已经开始上市,很多人已经开始近水楼台先得月吃自从学会冬瓜这种做法,我家冬瓜不够吃,外酥里嫩,葱香浓郁,香莫愁厨路无知己,谁人不识小面姨。大家好,我是小面姨。今天小面姨给大家分享一道炸冬瓜的美食做法。马上就要过国庆节了,最近这几天,没有事情的时候,我就开始学习一些新鲜美食的做法,准备在秋分时节,喝梨汤不如喝它,我家每周煮2回,经常上火的人多喝点莫愁厨路无知己,谁人不识小面姨。大家好,我是小面姨。今天小面姨给大家分享一道南瓜银耳汤的美食做法。昨天,是咱们中华民族一年一度的中秋佳节,很多人和家人在一起度过了一个团圆的中秋节。
安徽一商贩手法熟练,趁顾客不注意,迅速将手中的水果入水果袋俗话说,做生意最基本的就是诚信二字,作为商人,只有讲诚信才能够赢得顾客的信任,生意才能够越做越好。但是现在这个社会,有些商贩却将无奸不商奉为圭臬,认为做生意不奸滑一点,就活不下去,惊心!安徽蚌埠一共享单车座子藏刀片,一市民手被划伤虽然现在社会发展很快,交通变得非常的便利,但是最后一公里的问题一直困扰着广大的市民,如何解决公交和地铁站点离家这一段距离成为老百姓关注的话题。为了解决这个难题,共享单车在近些年顺势安徽六安,大车司机抓住保洁偷桶,质问后保洁称装油在安徽六安的一个服务区内,一名大车司机当场逮住了一名鬼鬼祟祟的保洁,当时这位保洁正在偷桶,被司机质问后,保洁称是为了装油!近些年来,我国发展得非常快,交通运输也日益繁忙了起来,作为惨烈!安徽亳州,小车被夹在两辆半挂中间被挤扁,3人当场死亡汽车已经成为家庭出行的主要交通工具,我国每年的汽车总数都在不断的增加。越来越多的汽车上路,给交通带来巨大压力的同时,也造成了更多交通事故的发生,尤其是在买车高潮爆发的今天,很多新手回忆儿时的小人书父亲给我买的第一本小人书是鸡毛信。当时我才几岁,收到意外礼物的惊喜表情至今难忘。后来,家里陆续买过几本小人书。那时的小人书一般的价格在几分一毛钱,贵的有几毛钱,但那时一般人家条件有阳台上的家长里短临近中午,对面人家的阳台传来一阵激烈的争吵声。女人的声音尖利清脆,高分贝的快速发声一波高过一波,打破了小区里原有的安静。侧耳细听母子间的争执,原来是妈妈怀疑孩子偷拿了她衣袋里的钱,秋天的期待处暑已过,秋声渐起。暑气渐止凉意至,正值秋风送爽时。感觉时间过得真快啊!仿佛才见春寒料峭柳梢头有新芽初萌,那份欣喜中多了几分渴望成长的期盼。路边的泥土中冒出一寸多长嫩绿的小草芽,给豁达的气度豁达是一种宽容大度的胸怀。历尽劫波兄弟在,相逢一笑泯恩仇。能屈能伸知进退,经得起挫败苦寒,荣辱不惊,得失淡然。豁达是一种坦荡无私的情怀,不以物喜,不以己悲,即使行至山穷水尽处,仍能河北廊坊,结婚娶亲时,女方家长竟在车底打滚儿,只是为了两条烟婚姻是人生中的一件大事,对于男女双方来说都极为重要,男方找到一个温柔体贴的女子,是一件人生大幸事儿,而女方找到一个疼爱老婆的人也同样非常的幸运。但并非所有的人都是那么的幸运,不过无多所学校禁止学生发生婚前性行为,违反者严厉处罚,家长叫好最近,多所学校针对学校的男女学生放出了大招,严格禁止学生在学校学习期间,发生婚前性行为,如果违反,将受到严厉的处罚。这种规定的出现,也从侧面反映出了当今各大高校面临的男女私生活混乱家长建议取消中考,实行高中义务教育,教育部的最新回应让人振奋随着大学升学率的不断走高,让家长们对于高考的重视程度有所放低,反而把更多的目光集中在中考上面。一所好的高中,每年一本大学的升学率都在90以上,那些全国知名高中就更不要说了。它们通常