MySQLでの私の年


著者:Lai Zheng(Allen Lai)は、公式のMySQLチームメンバーが20年近くデータベースカーネルの開発に注力する前に、夢を実現しました。Teradata、創設者およびMySQL InnoDB Storage Engineチームは、夢のデータベースカーネル、創設者XMLデータベースに任されています。 、およびMySQL InnoDBのGISサポート、透過的暗号化の主な開発者。彼は現在、Tencent TEG Cloud Architecture Platform Departmentのデータベースチームのエキスパートエンジニアであり、Tencent CloudCDBデータベースカーネルの開発を担当しています。




インタビュー

2012年の春、太陽が輝いて鳥が歌い、花が香ばしく、張江のオレンジ色の建物で友達とキーボードをタップするのに苦労していました。ソフトフォンが鳴ると、電話の画面に見知らぬ人が表示されました。別の嫌な電話番号でしたか?私は彼のことを気にしなかったので、キーボードをタップし続けました。電話はいつも揺れていました。まるで私に促したかのように、私はそれを手に取り、電話を接続しました。反対側から非常に柔らかくプロフェッショナルな女性の声が聞こえました。「こんにちは、私はOracleの採用コンサルタントエイミーです。 ?...」。それ以来、私のキャリアはMySQLと交差しています。

エイミーは、MySQLInnoDBチームが中国で適切なデータベースカーネルエンジニアを採用することに関心があると私に話し、私が参加することに興味があるかどうか尋ねました。世界で最も人気のあるオープンソースデータベースであるMySQLにアクセスします。参加してください。もちろん何も考えずに答えてくれて、とても興味があります。エイミーは非常にプロフェッショナルなHRで、私の後にインタビューを非常に効率的にアレンジしました。不安と興奮のヒントを持って、MySQLチームのインタビューを開始しました。

インタビューの最初のラウンド:InnoDBチームマネージャー、Calvin。Calvinはデータベースの分野の専門家であり、中国の科学技術大学を初期に卒業した偉大な人物の1人です(特にMySQLの偉大な人々を紹介します)。

インタビューの第2ラウンド:InnoDBパフォーマンス最適化のエキスパートであるInnamは、バッファープールパフォーマンス最適化の作成者です。

インタビューの第3ラウンド:InnoDB Great Godo。oストレージエンジンテクノロジーの優れたエキスパートであるInnoDBの創設チームメンバーの1人

インタビューの第4ラウンド:InnoDBアーキテクトのジミー。ジミーはデータベースカーネルの総合的な専門家でもあり、以前はSybaseSystemカーネルチームのボスでした。

MySQLのインタビューには、想像したほど多くのルールや困難はありませんでした。前後の4回のラウンドは、基本的に、前に行われたこととデータベースカーネルの理解を中心としたチャットでした。3つのことに感銘を受けました。1つは、インナムのアクセントが重すぎることです。カナダからの電話に加えて、英語をあまり聞くことができなかったため、多くの質問を理解できませんでした。バッチ。

もう1つは、oがgoogle talkを使用してトランザクションのデッドロックを見つける方法について質問したことです。入力速度が速すぎたため、反対側は入力マシンだと思いました。彼に会うまで、実際の人々は彼が感情のないプログラムマシンであることを発見しました。 (実際、oはまだ非常に興味深い人物です。次のシリーズでは彼についていくつかの興味深いことを紹介します)。ジミーのインタビューは南京西路の喫茶店で行われ、二人は昔から知り合っていたようです。ジミーは特に立派な人で、とてもフレンドリーです。全体的なインタビュープロセスは、意図的な準備がなくても比較的簡単に感じられます。おそらくそれは本当に幸運です。

チーム

従来のソフトウェア会社に関する限り、MySQLチームの構造は比較的フラットで、レベルはほとんどありません。私のような基本的な従業員は、OracleのボスであるLarryEllisonからわずか5階です。これの主な理由は、OracleがMySQLを買収した後、長い間、基本的にMySQLチームの元の構造と人員を保持していましたが、簡単なアクセスを行っていたためです。

MySQL全体は、MySQLカーネル、MySQLレプリケーション、MySQL NDBなど、いくつかの大きなチームに分割されます。これらの大きなチームは、いくつかの小さなチームに分割されます。たとえば、MySQLカーネルチームはオプティマイザーレイヤーとサーバーレイヤーに分割されます。 、InnoDB、QAなど。

当時、私が所属していたInnoDBチームには、カルビン、ケビン、米国のジミー、フィンランドのO、オーストラリアのサニー、インナム、カナダのマイケル、スウェーデンのマティアス、インドのサティア、ブルガリアのヴァシル、そして中国人がいました。私は、8か国から合計11人で、完全にグローバルなR&Dチームです。チームの全員は、次のような経験豊富なデータベースカーネルプログラマーです。oは2003年にInnoDBに参加した最も経験豊富な神、Sunnyは将来のInnoDBマネージャー、KevinはFalconストレージエンジンの開発に参加したベテランでもあります。ジミーはかつてSybaseR&Dチームなどを率いていました。たくさんの大物と一緒に仕事ができるのは本当に幸運なことです。

2013年上海でのチームミーティング

:::ジミー、安文、アレン、ケビン、o、シャオワ、マティアス、サティア、サニー、ヴァシル、アディティア、??、アンナマライ、ビン、マイケル、??、クルナル

仕事

InnoDBで働くことは、家から仕事ができるのでとても幸せです。これは、毎日子供を乗せたり降ろしたりする必要がある親にとっては非常にまれなメリットです。さらに、通勤時間を大幅に節約できます。上海にあるオラクルのオフィスに行くには2時間以上かかることを知っておく必要があります。

それはグローバルチームであり、メンバーはより経験豊富であるため、誰もが非常に特別な方法で作業します。基本的に、誰もが比較的独立した自分の仕事に集中しており、協力する必要がある場合は、鳩、電子メール、または電話で通信します。毎週ミーティングがあり、全員が作業の進捗状況を報告し、話し合います。毎年チームミーティングが開催され、世界中から集まって前年の成果をまとめ、来年の目標を立て、理想や人生について語ります。

MySQLでは、開発プロセスは非常に標準化されています。例としてバグ修正を取り上げ、大まかに次の手順を実行します。

まず、バグレポートに従ってバグを分析して再現し、修復方法を見つける必要があります。第5レベルと話し合った後、修復計画を決定し、bzrを介して新しいコードブランチを作成します。

コーディングが完了したら、対応するMTRテストケースを作成し、修復コードと一緒にレビューボードに配置する必要があります。レビューしてください。oのような偉大な神は非常に厳密にレビューし、問題のある詳細を手放すことはないため、レビュープロセスは数ラウンド続く場合があります。

レビューが完了したら、送信するコードをテスト用にテストクラスターに配置する必要があります。この自動テストシステムは非常に強力で、複数のプラットフォームで同時にデバッグバージョンとリリースバージョンをコンパイルしてから、並行してテストします。

テストが完了した後、問題がないことを確認した後、コードを最終的にトランクにマージできます。

私の最初の提出

上記は単純なバグ修正プロセスであり、より複雑な機能開発の場合、手順には事前作成タスクワークログも含まれ、それに応じてHLD(高レベル設計)、LLD(低レベル設計)およびその他の設計がワークログに入力されます。コンテンツ、プロトタイプの開発など。

私が作成したチェックスペースインデックスの機能ワークログ

InnoDBでの6年間の作業で、合計461件の提出を行いました。私が行った主な機能には、空間インデックス作成、透過暗号化、新しいデータ辞書などに対するInnoDBのサポートが含まれます

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

過去6年間で、私は多くのことを学んだと感じています。MySQLのようなオープンソースデータベースソフトウェア製品を開発するプロセス全体を経験しました。また、成熟したR&Dシステムと国際チームがどのように機能するかを理解しました。外国の神々と一緒に働くことは、知識とスキルを学んだだけでなく、私たちとはまったく異なる働き方、生活、考え方を発見しました。

どこかに行って

インターネット企業の爆発的な台頭とMySQLエコシステムの急速な発展により、MySQLチームの多くのメンバーは、より良い開発の機会を得て、徐々に辞任しています。また、Tencent CloudDatabaseのCDBカーネルであるTXSQLとの不溶性の結合も始まりました。偶然にも、私がMySQLを離れてから1年も経たないうちに、Oracleは中国のR&Dセンターの閉鎖を発表しました。オラクルにとって、アマゾン、アリ、テンセントの強い影響とOへの移行の波に直面して、それは困難な移行期間を経験するでしょう。MySQLの場合、当面は世界で最も人気のあるオープンソースデータベースであり続けます。元MySQL担当者として、TencentでのMySQLの開発を引き続き支援し、CDBコアTXSQLを通じてMySQLエコシステムに貢献していきます。のパワー。

PS:フォローアップの一連の記事では、MySQLとそのTencentバージョンのTXSQLについて詳しく知るために、いくつかの興味深いことを次々と共有します。気に入っていただければ幸いです。

Tencent Technology Official Exchange WeChatGroupが開設されました

グループに参加してWeChatを追加します:journeylife1900

(備考:テンセントテクノロジー)

おすすめ

転載: blog.csdn.net/Tencent_TEG/article/details/109505116