Facebook、Twitter、PayPal、LinkedInのMySQL担当者は、MySQLをどう使い、何を課題だと考えているか~MySQL Connect 2013

2013年9月30日

Facebook、Twitter、PayPal、LinkedInのMySQL担当エンジニアが集まり、それぞれの社内のMySQL利用状況、課題、これから期待する新機能などを語ったパネルディスカッションが、9月21日から23日までサンフランシスコで開催されたMySQLのイベント「MySQL Connect」の3番目の基調講演として行われました

世界でもっともヘビーなMySQLユーザーといえる4社は、MySQLについてどのようなことを考えているのか、基調講演の内容をダイジェストで紹介しましょう。

Current MySQL Usage Models and Future Developments

fig

──── まずはそれぞれの所属や担当を教えてください(司会は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 RDB データベース 運用・監視 Oracle




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本