BT

Ruby から Java へのシフトで大統領選を乗り切った Twitter

| 作者: Charles Humble フォローする 835 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2012年11月14日. 推定読書時間: 3 分 |

原文(投稿日:2012/11/09)へのリンク

 
Twitter の悪名高い Fail Whale (システム過負荷時に表示される鯨) は,米国大統領選挙の日には現れなかった。同社 Infrastructure Operations Engineering 担当 VP の Mazen Rawashdeh 氏によれば,ピーク時には1分間に 327,452 ツィートをサーバが処理したにも関わらず,である。合計するとその日には 3,100万の選挙関連のツィートがあった。トラフィックは定期的にスパイクを続けて,ある時には1秒間15,107ツィートにまで達した。この数字と比較すると,前回 2008年の選挙日の夜,Twitter のピークは1秒間 229 ツィートに過ぎなかった。

Rawashdeh 氏によれば,昨年あたりから Twitter の利用パターンが短時間のスパイク (例えば大晦日の深夜の鐘や有名人の妊娠発表に関するもの) から,数時間に渡ってピークが続くような,より持続的なものに変わってきているという。オリンピックの閉会式NBA ファイナル,そして今回の選挙などがこのパターンだ。

Twitter がこれ程のトラフィックレベルを維持できた理由のひとつには,同社が実施してきた一連のインフラストラクチャ変更がある。例えばInfoQ が以前レポートしたように,Ruby から Java と Scala で記述された JVM 上で動作するサービスへの段階的なシフトなどもそれに含まれる。

最近報告された変更は,Twitter のモバイルクライアントに関するものだった。Rawashdeh 氏によれば,

Ruby からの継続的移行の一環として,当社のモバイルクライアントからのトラフィックが Ruby スタックを完全に回避して,Java 仮想マシン(JVM)スタック側に送られるように,サービス設定の変更を行いました。

Twitter は,かつては世界最大の Ruby on Rails ショップと考えられていた。Ruby スタックに対する投資額も非常に大きく,Kiji という独自の世代別ガベージコレクタの開発さえ行っている。これは Ruby の標準コレクタとは違ってオブジェクトを世代別に分離し,大部分のサイクルでは世代の一部のオブジェクトのみを最初のホワイト (使用済) セットとするものだ。

しかし 2010年になって,同社は開発の重点を部分的にシフトすると発表した。フロントエンドでは HTML5 のトレンドに従って,ブラウザベースの JavaScript によるレンダリングコードへとシフトした。それによって Rails の Web ページ構築モデルによるメリットの多くが失われることになったのだ。その後にはパフォーマンスとコードのカプセル化の両方を理由として,バックエンドのメッセージキューとツィートストレージエンジンがいずれも Scala で書き直された。

同じく 2010年,Twitter の検索チームも検索エンジンの再構築に着手し, 検索ストレージを MySQL から Lucene 上に構築されたものに変更した。そして 2011年に開発チームが,Ruby on Rails の検索フロントエンドを,同社が Blender と呼ぶ Java サーバにリプレースすることを発表したのだ。これによって検索待ち時間は 1/3 にまで減少した。

このような変更の結果として,Twitter システムは問題なく動作したのだ。"結論:いつでも,どこでも,どのように利用される場合でも,Twitter は変わらず世界中でアクセス可能であることが必要なのです" と Rawashdeh 氏は書いている。"このビジョンを実現するため,私たちは努力しています。"

 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

特集コンテンツ一覧

.NETの派生を理解する

Wayne Citrin 2018年7月18日 午前3時44分

ASP.NET Core - シンプルの力

Chris Klug 2018年6月4日 午前3時26分

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT