InnoDBに惚れ込んで
「第7回 日本OSS奨励賞」の受賞理由について木下さんはこう説明してくれた。
「2010年末にリリースされたMySQL 5.5(GA)からInnoDB-Plugin がデフォルトの InnoDB になりました。それまでは、性能改善の開発版という形で従来のInnoDBとは別にInnoDB-Pluginとしてソースコードに含まれていて、性能改善はこのInnoDB-Pluginを対象に行われてきました。5.5 になってそれまで議論された性能改善の成果が一気に一般ユーザーも享受するところとなりました。なので、このタイミングで評価を受けたのだと思います」
デフォルトストレージエンジンの変更はInnoDB以外を使っていたユーザーには性能改善でインパクトがある変化だったそうだ。そして「Contributor of the Year」受賞をうけ、OSS奨励賞にもつながったという。しかし木下さんは「貢献は業務の一環でもあるので、もっとボランティアで活動している人が受賞するべきではないか」と、一時はOSS奨励賞を辞退することも考えていた。それほど謙虚な人だ。
まずは入社時までさかのぼる。最初は大手SIerでデータベースとは全く無縁のプロジェクトに配属された。2001年に再配属があり、ここからデータベースと接点が生まれた。データベースの知識はゼロだったから、ORACLE MASTERの勉強を通じてデータベースを学ぶこともあったという。当初は技術支援や製品調査などをしていたそうだ。
カタログから○×表で比較だなんて、もってのほかである。木下さんはきちんとベンチマークで比較する。そのベンチマークですら自作した。木下さんは「TPCのサイトには仕様が公開されています。そこからデータベースに負荷をかけるソフトウェアを開発しました」とさらりと話す。もともと性能に関して熱心だった。ベンチマークのソフトを開発したことも、その経験を自社が手がけるデータベースシステムの性能改善につながると考えたからだ。
そして世間の関心は徐々にオープンソースに向けられるようになる。木下さんも各種オープンソースデータベースを検証し、将来性を感じ取っていた。
しかし2005年ごろ、ある商用データベースベンダーの重鎮が「オープンソースデータベースの性能なんて、まだまだだ。10年過ぎても商用に追いつくことなどないだろう」と言い放ったのを記事で見た。これが沈着冷静な木下さんの闘志に火を付けた。心の中で「なにくそ」と思った。
ただし重鎮の言葉はそう間違ってなかった。実際当時のオープンソースデータベースではあまりいい性能は出せてなかったからだ。そこで木下さんは「なぜ、性能が出せないのか」その答えを探すべく、ソースコードを読みあさるようになる。木下さんは「『どんだけヒマなんだ』と思われそうですよね」と照れながら笑う。
ターゲットとしたのはMySQLとInnoDB。特にInnoDBにほれこんだ。木下さんはInnoDBを「それまでのデータベースの性能を調べてきた経験から見て、実装がとても理に叶っている。そして、そう感じたということは、開発者と考え方が合っているとも言えるかも知れない」と説明する。そこが気に入ったようだ。なお木下さんから見ると、MySQLはソースコードが暗号化されているかのように複雑でInnoDBとは対照的。「まるで水と油」なのだそうだ。
木下さんによれば、ソースの読解性については、InnoDBのソースコードはトランザクション処理の実装などRDBMSの内部構造に詳しくないと読めないという。一方、mysqldのソースコードはユーザー側に近いレイヤーなので、記述が難解でも動作を確認しやすく部分的には理解しやすいのではないか、とのこと。
(女性にたとえたら、言うことは正しいけど言葉が難解な良家のお嬢様と、親しみやすいけど話がよく飛ぶ下町のギャルみたいな感じだろうか……?)
いずれにしても、木下さんにとってInnoDBは「性に合っていた」。だからこそ、難解なソースコードも読み進めることができた。そして「いじれば必ず性能はよくなる」と確信し、研究を進めた。