2014年3月28日金曜日

WebScaleSQLとは何か(まとめと想像)

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を作って、プレスリリースも出して、ニュースにもなってというのはすごいなぁと思いました。

2014年3月17日月曜日

JAWS Days 2014 で「最強のAWS」について発表しました

JAWS Days 2014に登壇させていただき、「最強のAWS」というテーマで発表しました。

モデレーターの@con_mameさんからは「AWSのここが良くなればいいのに」とか「この機能が無いのはどうよ」みたいな話をしてほしいと言われてました。でもAWSの怖いところは、「この機能があれば良いのに」と思っていると気づかないうちに実装されていたり、あまりに機能が多いので「実は存在した」というオチがありそうなところ。話題の選定には気を遣いましたが、結果的にAWSの中の人に「いいね!」と言ってもらえてよかったです。

今回の話題は大きく2つ。ひとつは「レイテンシ」、もうひとつは「テスト」です。レイテンシは、やはりクラウドや仮想技術につきものというか、どうしても物理環境よりも長くなってしまうので「もうひと押し!」のような考えで書きました。発表後に聞いたのですが、c3インスタンスでplacement groupを有効にすると非常にレイテンシが小さくなるとのこと。試してみたいですね。

もう一つの話題は「テスト」です。AWSのWeb Consoleはすごく充実しているけど、実はWebインタフェースで作業するのって"Infrastructure as Code"に反していると思うんですよね。再利用できないし、事前のレビューもできない。そこで多くの利用者はSDKを使って自動化していると思うんですけど、もう少し中間的な、お手軽に"Code"っぽいことができたらなぁという発想です。

発表に用いたスライドは以下です。

当日の参加者の皆様と関係者の皆様、ありがとうございました。

See also