author Lai Zheng （Allen Lai） front MySQL Official team members , Focus on Database Kernel Development for nearly 20 years , He has worked in dream ,Teradata, Peking University Founder and MySQL InnoDB Storage engine team , It's the Damon database kernel , Founder XML database , as well as MySQL InnoDB Of GIS Support , The main developer of transparent encryption . Now Tencent TEG Expert engineer of database team of Cloud Architecture Platform Department , In charge of tencent cloud MySQL Research and development of database kernel .
2012 Spring of the year , I'm in an orange building in Zhangjiang , It's sunny outside the window , My friends and I are working hard on the keyboard together , With a soft telephone ringing , A strange number appears on the screen of the mobile phone ,“ Is it harassing the phone again ？” Leave him alone , I went on to do my own thing . But the cell phone is shaking all the time , It seems to urge me to , I picked up the phone and put it through , There's a very soft, professional voice from the other end ,“ Hello! , I am a Oracle Recruitment consultants for Amy, Is it convenient for you now …”.
My career has been with MySQL There's an intersection .
Amy Tell me MySQL InnoDB The team is interested in recruiting suitable database kernel engineers in China , Ask me if I'm interested in joining .MySQL What is it? ,the world’s most popular open source database, Invite me to join ？ I didn't even want to answer her ：“ Of course. , And I have a lot of interest ！”
Amy It's a very professional HR, Very efficient arrangements for my subsequent interviews , With a little bit of trepidation and excitement , I started to get into MySQL Team interviews .
The first round of the interview ：InnoDB The team manager,Calvin.Calvin Is an expert in the field of database , In my early years, I graduated from CUHK and went abroad （ In the following articles, I will introduce MySQL The cattle of ）.
The second round of the interview ：InnoDB Performance optimization experts Innam,Innam Is the author of buffer pool performance optimization .
The third round of the interview ：InnoDB A great god Marko.Marko yes InnoDB One of the founding team members , Storage engine technology experts .
The fourth round of the interview ：InnoDB Architects Jimmy.Jimmy It's also a versatile expert in database kernel , And it was before sybase The boss of the kernel team .
A complete set of procedures come down , Actually MySQL The interview is not as many rules and difficult as you think , Before and after 4 round , It's basically chatting , It mainly focuses on the things that have been done before and the understanding of the database kernel , During the interview , I'm quite impressed （ More interesting ） There are three things ：
One is Innam The accent is too strong , Plus calls from far away Canada , My English listening is really not high , So I didn't understand a lot of questions , There was a lot of panic at that time .
The other is Marko use google talk Asked how to find transaction deadlock , His typing speed is super fast , So I think there's a typing machine on the other side , It wasn't until I saw him that , He's just an emotionless programming machine （ Actually ,Marko Still a very interesting person , I'll introduce some interesting things about him later ）.
Last , and Jimmy The interview was held in a cafe on Nanjing West Road , Two people seem to have known each other for a long time ,Jimmy It's a wonderful person , Very friendly . The whole interview process is quite relaxed , I didn't plan to , Maybe it's really lucky .
Part2 The team
In terms of traditional software enterprises ,MySQL The team structure is relatively flat , There are few levels , Basic employees like me , leave Oracle The biggest boss Larry Ellison It's five stories apart . The main reason for this is Oracle Acquisition MySQL For a long time after that , Basically reserved MySQL The original structure and personnel of the team , It's just a little bit of simple access .
Whole MySQL Divided into several big teams , Yes MySQL kernel,MySQL replication and MySQL NDB wait , These big teams are subdivided into a number of small teams , such as ：MySQL kernel There are optimizers in the team ,server layer ,InnoDB and QA etc. .
at that time , Where I am InnoDB There is... In the team base In the United States Calvin,Kevin,Jimmy, Finnish Marko, Australian Sunny, Canadian Innam,Michael, Swedish Mattias, India's Satya, Bulgarian Vasil, Plus China's me , There were only eleven people , But from eight different countries , It's a completely global R & D team . Everyone on the team is an experienced database kernel programmer , such as ：Marko yes 2003 Joined in InnoDB The most experienced God of all ,Sunny It's in the future InnoDB manager,Kevin I was once involved in Falcon Storage engine development veteran ,Jimmy Once led Sybase And so on . Can work with so many big guys , It's really a lucky thing .
Right up ：Jimmy,Yasufumi, Allen, Kevin, Marko, Shaohua, Mattias, Satya, Sunny, Vasil,Aditya, ??, Annamalai, Bin, Michael, ??, Krunal…
stay InnoDB Work , It's a very happy thing , Because you can work from home , I believe many people envy this point , And that's for a parent who needs to pick up their kids every day （ I ） Come on , It's a very rare Welfare , Not only can you allocate your work and life time according to your own rhythm , It also saves a lot of unnecessary commuting time , Need to know , Go to Oracle The office in Shanghai , It takes more than two hours to go back and forth .
Because it's a global team , and , Members are also more experienced , therefore , The way we work is very special . Basically everyone is focused on their work , Relatively independent , When cooperation is needed , adopt pigeon、 Communicate by email or phone . There's a weekly meeting , Each of you will report on the progress of your work , And discuss .
Except for the weekly meeting , We also organize once a year team meeting, People come together from all over the world , Sum up the work of last year , Plan for next year , Talk about ideals , Talk about life .
stay MySQL, The R & D process is very standardized . With a bug Repair, for example , There are several steps to go through ：
First , Need basis bug report To analyze and reproduce bug, And find a way to fix it , Process and 5 After the discussion of the big man , Determine the repair plan and pass bzr Create a new code branch .
After coding , You also need to create the corresponding MTR test case, And with the fix code , Put it in reviewboard Please come up here review.Review The process can last several rounds , Because like Marko Such a great God review It's very rigorous , I won't let go of any details that went wrong .
Review After completion , You need to put the submitted code on the test cluster to test . This automated test system is very powerful , It will compile on multiple platforms at the same time debug and release edition , And then parallel testing .
Testing is completed , After confirming that there are no problems, the code can finally be merged into the trunk .
The above is just a simple bug Repair process , And for more complex feature development , The steps also include the previous creation tasks worklog, And in worklog It should be filled in accordingly HLD（High Level Design）,LLD（Low Level Design） And so on , And develop prototypes and so on .
stay InnoDB In six years of work , I did a total of 461 Submission , The main features that have been done include ,InnoDB Support spatial index , Transparent encryption , New data dictionaries and so on , Here are some of them worklog A list of ：
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
In these six years , I feel that I have gained a lot , Experienced MySQL Such an open source database software product is how to carry out the whole process of research and development , I also learned how a mature R & D system and international team work . Working with foreign gods , It's not just about learning knowledge and skills , We also found some work totally different from ours , life , Even the way of thinking , It's also a very novel experience for me .
With the explosive rise of Internet companies , as well as MySQL The rapid development of the ecological chain ,MySQL Many members of the team get better development opportunities and gradually leave . And I also started with Tencent cloud database CDB kernel TXSQL The story of .
Coincidentally , Just as I left MySQL Less than a year ,Oracle Announced the closure of China's R & D Center . about Oracle Come on , Facing things like Amazon , Ali , Tencent's strong impact and to O The wave of , It will go through a difficult period of transformation . And for MySQL Come on , In the foreseeable future, it will still be the world’s most popular open source database, As ever MySQL people , I will continue to help Tencent MySQL The development of , Through Tencent cloud MySQL The kernel of TXSQL by MySQL The ecological chain continues to contribute its power .
PS： In the following series of articles , I'm going to share some with you MySQL Something interesting about it , Let us know more about MySQL And its Tencent version TXSQL, Hope you enjoy it .