Facebook、Google、LinkedIn、Twitterは共同でリレーショナルデータベースを“ウェブスケール”にするため、WebScaleSQLを立ち上げた。これは、MySQL 5.6 Community Editionのブランチだ。
MySQLは上述の企業ですでにウェブスケールの規模で使われているが、“同じような課題に直面して”いた。そこで共同で“各社で別々のブランチをメンテナンスするのではなく、自分たちのニーズに適う共通の変更を開発、メンテナンスし、さらにカスタマイズをする”ことにした、とFacebookのソフトウエアエンジニアであるSteaphan Greene氏はInfoQのインタビューに答えた。このプロジェクトは“オープンであり、MySQLコミュニティの全員がに貢献でき、全員に利益があります”。
MariaDBではなくなぜMySQLなのか、という問いに対して、Greene氏は“MySQL-5.6が最適だという合意が生まれました。大規模な利用に耐えうる状態であり、MySQL-5.7で予定されている機能も私たちの行く末に適している”からだ、と答えた。
これがMySQL 5.6.17のブランチであり、フォークではないことに注意する必要がある。WebScaleSQLで導入される変更は“MySQLのコミュニティリリースが続く限り”トランクに反映される、とプロジェクトのFAQには書いてある。
上述の4社は過去数ヶ月、MySQLについても協業してきた。自動化されたフレームワークを立ち上げ、コードベースに提案された変更を評価するためのストレステストスイートを開発した。コードの変更がサブミットされたとき、プロジェクトに参加している最低でもひとつの他の企業でも役に立つ場合にコードベースに取り込まれる。特定の企業にだけ便利なパッチは取り込まれない。
今まで、LinkedInは“テストフレームワークの変更、改善の提案や他のメンバの変更のレビュー”を行ってきた、と同社のマネージャのDavi Arnaut氏は言う。
TwitterはMySQL 5.7からのバッファプール最適化のバックポートやNUMAインターリーブポリシー、多くの改善を行った。
すべてのプロジェクトのコミットはGitHubのプロジェクトページで確認できる。
近い将来、Facebookは非同期クライアントを開発するつもりだ。このクライアントには、“テーブル、ユーザ、圧縮統計のプロダクションテストバージョン”が含まれている。
長期的には、WebScaleSQLはMySQLの直面している大規模な配置での問題に対処する計画だ。
WebScaleSQLはビルドは提供しない。ソースコードだけだ。これによって4社はそれぞれ、コードをダウンロードし、それぞれの企業固有のパッチ適用や最適化を行って、望ましいビルドを作成する。