Facebook、Twitter、PayPal、LinkedInのMySQL担当者は、MySQLをどう使い、何を課題だと考えているか~MySQL Connect 2013
Facebook、Twitter、PayPal、LinkedInのMySQL担当エンジニアが集まり、それぞれの社内のMySQL利用状況、課題、これから期待する新機能などを語ったパネルディスカッションが、9月21日から23日までサンフランシスコで開催されたMySQLのイベント「MySQL Connect」の3番目の基調講演として行われました。
世界でもっともヘビーなMySQLユーザーといえる4社は、MySQLについてどのようなことを考えているのか、基調講演の内容をダイジェストで紹介しましょう。
Current MySQL Usage Models and Future Developments
──── まずはそれぞれの所属や担当を教えてください(司会はOracleのMySQLエンジニアリング担当バイスプレジデントThomas Ulin氏。写真一番左)。
(左から2番目)Davi Arnautです。Linked InでソフトウェアエンジニアとしてMySQLデベロッパーをしています(以下Li)。(左から3番目)Daniel Austin、PayPalのセントラルアーキテクチャチームで働いています(以下Pp)。(左から4番目)Mark Callaghan、FacebookでMySQLの改善をしています(以下Fb)。(いちばん右)Calvin Sun、TwitterでMySQLプラットフォームのマネジメントをしています(以下Tw)。
──── みなさんにおたずねします。みなさんのビジネスにおいて、MySQLをどのように使っているのでしょうか?
Li Linked Inでの主な用途は、レプリケーションを使ってデータに可用性を与えるところにあります。
Pp PayPalyはモニタリングに基づくリアルタイムなトラフィック予測などを含む、いくつかの用途に使っています。また、大規模データの分析のポストプロセッシングに用いています。
Fb 大規模に利用しているのはユーザーインターフェイスとトランザクション処理のところですが、内部アプリケーションのトランザクション処理にも用いています。
Tw MySQLはTwitterの基盤となるコンピュータブロックで、ツイートやインデックスなどあらゆるデータの保存に使っています。キーバリューストア的に、レプリケーションではなくシャーディングを採用しています。社内のデータマネジメントにおいては多くのMySQLでレプリケーションを利用しています。
TwitterとFacebookはMySQL 5.6へ、PayPalは5.6をスキップ
──── MySQLのどのバージョンを使っていますか? また、MySQLの関連製品などは使っていますか?
Li MySQL 5.5を使っています。またMySQL Backupも使っています。
Pp MySQL 5.1をはじめいくつかのバージョンを使っています。MySQL Cluster 7.2も使っていて、バージョンアップに期待しています。
Fb 相当多くのパッチを当てたMySQL 5.1、5.6のCommunity Editionを使っています。
Tw 商用版のMySQL 5.5を使っていて、5.6へのバージョンアップを準備中です。
──── MySQL Clusterはどんな用途に使っているのでしょうか?
Pp 私たちはつねにWebサイトが稼働し、しかも迅速なレスポンスが求められているためにリアルタイムな性能の分析が必要で、そこにMySQLを使っています。MySQL Clusterを使っているのは、高速で複雑なスキーマにもフィットしたためです。特に性能面が重要でした。
──── MySQLを選択した主な理由を教えてください。
Li 私が入社する前から使っていたので(笑)、想像すると、よく知られている製品で、非常に安定していて、拡張性やサポートも十分だったからではないでしょうか。
Pp 私たちはMySQL Clusterの高可用性にとても感謝しています。その性能にも。最大の理由は、ですからデータをグローバルに分散しつつ高い可用性で運用できる点にあります。
Fb 私も入社前から使われていたものですから……MySQLは特にこの数年、つねに改善に向けて多くの努力が行われてきました、それは我々も、そしてオラクルもです。もちろんコスト効率が高く品質もすぐれています。最新バージョンの5.6は素晴らしい出来です。
Tw 新しいデータベースを開発するのは容易ではありません。MySQLは非常に安定していてデータを失ったことはこれまでなく、そこがデータマネジメント上重要な点だと考えています。
──── TwitterではMySQL 5.6へのマイグレーションをしていると聞いています。状況はどうですか?
Tw いまはパッチをMySQL 5.6に対応中です、私たちのパッチはFacebookほど多くはありませんが、たぶん100かそこらのパッチがあります。おそらく6カ月くらいで厳重なテストをしてマイグレートできるのではないかと思っています。
Pp 私たちはMySQL 5.6はスキップして5.7を待つつもりです。ハードウェアの性能をスケーラブルに引き出すという点に注目しており、その点から5.7を待とうという判断をしています。
MySQLにこれからどんな機能がほしいか?
──── みなさんレプリケーションを使っているとうかがいました。ほかに使っていて注目している機能はありますか?
Li InnoDBのあらゆるワークロードに対して安定した性能が出せる点はよいですね。またレプリケーションではバイナリログを利用してHadoopなどへデータを配布できる機能も利用しています。
Pp サーキュラーレプケーションでグローバルなデータのディストリビューションを行っており、その柔軟性に感謝しています。クラウド環境において安定し、迅速にマシンが起動するのも便利で、大規模環境でのスケーラビリティ向上に貢献してくれています。
Fb これまでパラレルレプリケーションの導入には信じられないくらい苦労しましたので、そうした機能が正式なバージョンに入るのは非常に大きいですね。スケーラブルな環境に適応させることに対してあまりにも高い専門性が要求されたので、MySQL 5.6やこの先にそれが容易になることに期待しています。
Tw 私たちにとって重要だと思われるのはパフォーマンスについてで、特にフラッシュ、トランザクションのオプティマイゼージョン、オンラインでのAlter Tableなどに注目しています。
──── MySQLでこれからどんな新機能がほしいですか?
Li 1つは、MySQLとHadoopの連係です。いまはMySQLからデータのロードなどや変換に手間がかかり、こうしたところをどう自動化するかについて課題を抱えています。
また、インクリメンタルバックアップもほしいですね。大規模なデータベースを運用していると毎日、毎時バックアップが発生しますが、時間も手間もストレージ容量もかかるのでインクリメンタルバックアップができると嬉しいです。
アプリケーションごとに必要なレスポンスタイムも変わります。アプリケーションの振る舞いに合わせてテーブルに優先的にバッファープールを割り当てたりといったこともより簡単にしたいです。
Pp 期待しているのはシャーディングへの改善です。特に私たちは、金融業界の規制の中でいかに効率的にシャーディングするか、という事情を抱えています。
それからFacebookのWormholeをつかったPub/Sub機能で、グローバルに一貫性のあるデータの配信は魅力的で、私たちのタスクでも役に立ちそうです。というのも、迅速にデータを移動させるときの一貫性に課題を抱えているので。
関連記事: FacebookにおけるMySQLを用いた大規模システムアーキテクチャの現実~MySQL Connect 2013
Fb これまでの6~7年で、MySQLは私たちが抱えていたマネージャビリティとマルチコアにおける性能の課題に答えてきました。いま新しい性能の課題だと私たちが考えているのは、ワークロードに対してI/Oを削減するということです。ワークロードが求めるIOPSに対していかにI/Oやストレージを削減するか、だと考えています。
私たちはその課題に対応するアーキテクチャをこれまで構築してきましたが、サーバは多くのI/Oを実行しており、いかにディスク操作あたりのIOPSを高められるか、といったところに今後の大きな改善の余地があるのではないかと思っています。特に書き込み操作に関して。
Tw 私たちの注目点もFacebookに似ています。それ以外の点としてはリソースのガバナンスが上げられるでしょう。なぜならTwitterはリアルタイム性のあるサービスで、複雑なクエリがほかの利用者のリソースに影響してしまいます。エンジンレベルでクエリのリソース利用を最小化することは重要です。
スキーマの柔軟性も大事だと考えています。私たちは何千何万ものアプリケーションを抱えていて、オンラインAlter Table機能は良いのですが、アプリケーションはもっと柔軟にスキーマの変更を求めています。私たちはそのためテーブル構造を毎週毎日変更していて、JSONやスクリプトなどからもそういった柔軟なインデックスへのアクセスが求められています。
また私たちは複数のデータセンターを運用しているので、マルチマスターレプリケーションについても期待しています。
──── レプリケーション関連で期待したい機能はありますか?
Li レプリケーションにおける一環性グループのコンフィグレーションがより柔軟にできるようになるといいですね。私たちは、ときには一環性グループに30のデータベースを抱えていて、そのすべてに一環性がほしいときもありますし、ときにはそのいくつかは除外したいときもあります。スレーブに対してどう設定するかの柔軟性があるとありがたいと思っています。
Pp MySQL Clusterで解決したいのはバックアップにかかる時間の短縮、特にダンプについてです。MySQLのダンプはとても時間がかかります。
Fb レプリケーションに関してはMySQL 5.6に希望する機能が入ったので、その導入プラニング、テスティングに注力しています。
Tw 5.6のレプリケーションに多くの改善があるので嬉しく思っています。 Master failover Scriptが改善されているとのことで評価しようと考えています。
MySQL Connect 2013
あわせて読みたい
次バージョンのMySQL 5.7はさらに性能を2倍へ、「オラクルはMySQLを殺そうとしている」は真実ではない~MySQL Connect 2013
≪前の記事
さくらのクラウドがアベイラビリティゾーン提供。設備を完全に分離した第二ゾーンが10月から稼働開始