メールによるBig Dataを捌く「HyperScale Technology」


 手前味噌になりますが、筆者が所属するGeminiは、こうしたメールやインターネット接続の爆発的な増加によるBig Dataにいち早く対応してきたキャリア向けベンダです。当社には、前述のInktomi社出身のエンジニアが多数所属していたため、インターネットにおける大量トラフィックの処理技術を、主に携帯メールによるメッセージング処理システムへ応用し、「HyperScale Technology」を開発しました。

 HyperScale Technologyは、膨大なトラフィック/トランザクション環境下でも安定してメールの送受信が可能になるスケーラビリティの高いメッセージングシステムを構築するための、キャリアグレードのソフトウェア技術です。すでに国内外のモバイル・キャリアやインターネットポータル事業者に採用され、最先端のインフラ設備を支え続けています。

 メールシステムの場合、時間帯やイベントにより発生する極めて急峻なトラフィック集中への対応力がポイントになります。たとえば日常であれば、夜11時ごろにトラフィックのピークが発生します。また、新年を迎える元旦の深夜0時からは、膨大な数の通称「あけおめ」メールが送られ、システムに物凄い負荷がかかることも知られています。これらはメールによるBig Dataの典型例であり、携帯メールサービス開始当初には処理能力が追いつかずシステムダウンを余儀なくされていました。

 こういった急峻なトラフィックの伸びが起こることが明らかになって以降、特に携帯電話向けのメールシステムには高いスケーラビリティが要求されるようになりますが、費用対効果の面で元旦のようなピーク時に合わせてサーバーを設計することは許されません。また、1件のメールに対して1つの処理プロセスやディスクI/Oを走らせる通常のプログラミングによる開発手法では、数千ものメールの処理を同時に実効させることが難しいという現実が立ちはだかりました。

 通常のプログラミングモデルによるメールシステムの場合は、アクセスしてきたメールの数と同数のコネクション(メールの送受信数)と同数のスレッド(処理の単位)がサーバー内で生成され、それぞれのスレッドが1件のメールを処理していきます。この仕組みにおいて多数のメールが一気に押し寄せると、多数のスレッドが同時に生成され、それぞれのスレッドは処理のため一斉にコンピュータ上のハードウェアリソース(ハードディスクやネットワークインターフェース等)へアクセスしようとします。その数が数百から数千におよぶと、ディスクやネットワークに対するI/Oの奪い合い(競合:コンテンション)が起こり、これがボトルネックとなってコンピュータのパフォーマンスを著しく低下させていきます。通常、同時コネクション数が数千に達するとサーバーリソースがデッドロック現象を起こして機能しなくなってしまうといわれています(図3の赤のグラフ)。

図3 HyperScaleスレッドと一般的なスレッドのパフォーマンス比較(概念図)
HyperScaleではコネクション数の増加に伴い緩やかなLatency(遅延)の発生はみられるものの、安定した処理性能は維持し続けることが特長となっている

図3 HyperScaleスレッドと一般的なスレッドのパフォーマンス比較(概念図)


 そんななかで我々は、NOWプロジェクトで経験していた分散コンピューティング技術による高いスケーラビリティに着目し、これを携帯メールシステムに応用する研究を約2年にわたり進めていきました。その結果として生み出されたHyperScale Technologyは、特に高価なサーバーでなくても、数千というメールを同時に受け付けて処理することを可能にしたため、内外のモバイル・キャリアに採用されることとなりました。

 HyperScale Technologyがメールの同時処理に長けているのは、NOWプロジェクトで開発された「Asynchronous programming Model(非同期型プログラミングモデル)」と呼ばれるI/Oセントリックなプログラミング・モデル(特殊なスレッド技術)を採用しているからです。サーバー内ではHyperScaleスレッドが生成され、このスレッドにメール処理を振り分けることにより、ディスクおよびネットワークとのI/O処理効率が劇的に向上します。その結果、1台のPCサーバー当り1000トランザクション/秒という驚異的な処理能力を達成でき、しかもピーク時には1台のPCサーバー当たり1万同時コネクションを超える負荷にも問題なく対応することができます(図4)。

図4 HyperScale スレッディングモデル

図4 HyperScale スレッディングモデル


 この処理能力は、現在でも世界最速レベルと我々は考えていますが、HyperScale Technologyの最大の特長は、処理の継続性にあります。トラフィックが急激に輻輳しサーバーの許容範囲を超えてしまった場合でも、HyperScale Technologyを採用したシステムの場合には処理能力がほとんど低下しないのです。図3の青のグラフは、HyperScale スレッドによって同時コネクション数が1000を超えても処理能力が低下しないことを示しています。これは、輻輳時にもディスクI/OやネットワークI/Oでボトルネックが起こらず、システムリソースのデッドロック現象を回避できるからです。

 また、HyperScale Technologyによって構築するメールシステムは、コモディティーサーバーと標準的なOSを利用して構築することができるため、対処しようとするトラフィックの量(メールの量)から見て割安なシステムとなることも大きな魅力です。トラフィックの増加に合わせてPCを追加することができ、費用対効果に優れたメールシステムを維持していけます。

 次回は、モバイルクラウドが生み出すBig Dataに最適の技術として最先端のエンジニア達から注目を集め始めたNOSQLと呼ばれる最新のデータベース技術の動向について解説する予定です。

(2010年11月25日掲載)

前ページへ12連載目次へ
page top