WebScaleSQLが公開されました。 これはFacebook, Google, LinkedInそしてTwitterのMySQLエンジニアが、大規模環境で使用する際に必要な変更点をまとめて、違う名前をつけてリリースしたものです。
MySQLとの違い
FAQにまとまってるものと、GitHubのcommitsを見ればなんとなくわかります。
- 変更点それぞれについて全部のテストを自動で走らせるようなフレームワークを追加
- ストレステストと自動化された性能テストを追加
- テストを整理して、安全な変更が余計なテストを壊さないようにした
- NUMA interleave、innodb バッファプールフラッシュの最適化、いくつかのクエリに対する最適化など性能改善
- super_read_onlyと、1秒以下の精度でタイムアウトを指定するといった、web scaleで必要な変更
super_read_only とは、SUPER な権限を持った人でも read only にしてしまう機能のようです。
なぜ独立のブランチなのか
WebScaleSQLと新しく名前がついた割にはそこまで大きな変更点はなく、なぜリリースされたのかと疑問に思いました。私の想像ですが次のような感じなのかなぁと思っています。根拠なしなので間違ってたらごめんなさい。
- お互いにエンジニア同士が交流する中、「それウチも困ってる!」というのが増えた
- Oracle にパッチを投げるには少し面倒な手続きが必要
- もう少し身軽に、様々な機能を取り込んで速いペースで試せる共通基盤がほしい
- そうだ、名前をつけて公開してしまえば開発も加速できるしライセンスもはっきり
もう一度書きますが根拠レスです。あとはテストが彼らの求める水準としてはcommunity版には含まれていなくて、そういうのをもうちょっと気軽にメンテしておきたいんじゃないかとも思いました。
今後の見通し
しばらくはMySQLの最新プロダクションリリースに対するパッチセットのような感じで、"fork"と言わず"branch"と名乗って開発を続けるようです。コミットを見ていると1年以上前のコミットも多くて、とりあえずまとめてみました、ここからスタートですという感じに受け止めました。
最近また新しい機能の追加がぽつぽつ行われているようなので、しばらくするともう少し変わったものになるのかもしれません。
蛇足
きちんとかっこいいWebを作って、プレスリリースも出して、ニュースにもなってというのはすごいなぁと思いました。