BT

MySpace、Concurrency and Coordination Runtimeの利用方法について語る

| 作者: Jonathan Allen フォローする 594 人のフォロワー , 翻訳者 竹中 翔 - (株)ポータルアイランド フォローする 0 人のフォロワー 投稿日 2009年10月15日. 推定読書時間: 2 分 |

原文(投稿日:2009/10/12)へのリンク

CCR(Concurrency and Coordination Runtime)が.NETロボティックスでデビューして以来、多くの企業がMySpaceを含むロボティックス以外の様々なプロジェクトでCCRを採用してきた。

CCRはアプリケーション各部の分離のためにメッセージパッシングセマンティックを利用する。内部では、マネージスレッドとワークスティールキューが従来のスレッドやロックよりもオーバーヘッドを著しく減少させている。

MySpaceは生のソケット上のカスタムワイヤフォーマットである通信レイヤにCCRを使っている。各サーバは1方向メッセージ用キュー、すぐにレスポンスが返ってくることが予想される同期メッセージ用キューの2つを持っている。これらは同期メッセージキューと1方向メッセージキューにアサインされているスレッドの数によって、サーバ毎に変化させることができる。

通信レイヤの向こうにはキャッシングクラスタがある。各クラスタはストレージコンポーネントとプロセッシングコンポーネントのコレクションを含んでいる。1方向メッセージを受信した時、それは第3のCCRキューに入る。それからメッセージの種類によってストレージコンポーネントやプロセスコンポーネントに転送される。同期メッセージは同じ方法で処理されるが、上記のキューはスキップされる。

スレッドプールよりも非常に高いスループットを得られるので、MySpaceではCCRを使用している。この理由の1つは、.NETスレッドプールには多くのスレッドを生かしておく方法を決めるためにかなりの量のオーバーヘッドがある、ということである。また、貴重な処理時間を消費するスレッド間のコンテキストスイッチもある。CCRはデフォルトで1CPUに対して1スレッドとすることでこららの多くを避けている。さらなるスレッド制御のために、MySpaceは実行時にキューに割り当てられているスレッドを動的に変更できるようにCCRを拡張した。

クラスタが毎秒受信する何千ものメッセージに加えて、送信メッセージも処理しなければならない。このため、彼らはCCRのマルチレシーブや、100メッセージたまるまでや500ミリ秒たつまで待ってバッチでメッセージを送信するようなパターンを使っている。MySpaceによれば、これらのパターンは大量データの移送には必須であるとのことである。

CCRを採用する前、MySpaceは.NETスレッドプールの利用やスレッドのマニュアル管理を行っていた。彼らはCCRの前は.NETのスレッド管理の代替手段を知らず、このようなケースをサポートする際は自社の実装で解決しようとしていたそうだ。

現在、MySpaceはCCRで動作する1,200のミドル層サーバと3,000のWebサーバを使っている。彼らが自身のフレームワークに組み込み、多くの開発者が気づくことさえなくそれを使うことによって、MySpaceではとてもポピュラーになった。

Erik Nelson氏、Akash Patel氏とのインタビューはChannel 9で、CCRによる詳細な情報はCCR and DSS Toolkit 2008 R2で確認することが可能だ。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには 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でリプライする

ディスカッション

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


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

Follow

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

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

Like

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

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

Notifications

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

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

BT