ページの本文へ

Hitachi

企業情報研究開発

ビッグデータ時代の到来−わたしたちの身の回りでは、日々ネットワークを介して膨大な量の情報がやりとりされており、その情報量は増加し続けています。近い将来、世界で500億のデバイスがつながるといわれています。その膨大なデータをスマートに処理する技術、「超高速メッセージング技術」の開発には、日立の若いブレインが貢献しています。

(2014年4月10日 公開)

ビッグデータに負けないメッセージ集配処理

超高速メッセージング技術とはどのような技術なのでしょうか。

写真「水谷 衣津美(みずたに いづみ)」

水谷その名のとおり、メッセージを高速に処理する技術です。メッセージとは、ネットワーク上でやりとりされる情報のことで、身近な例でいえば、携帯電話のメールやショートメッセージ。SNSのメッセージサービスも該当しますね。そういった情報を、送信者から宛先に中継することを「メッセージング」といいます。

わたしたちの部署は、主に携帯通信キャリア様向けにメッセージングを行うシステムの技術開発にかかわってきました。その中で、扱うデータ量が増大し、システムも大きく複雑になってきたことを受けて、膨大なメッセージを処理できる技術が求められていたのです。こうしたニーズに応えるために開発したのが今回の「超高速メッセージング技術」です。

写真「木下 雅文(きのした まさふみ)」

木下また、近い将来、世界で500億のデバイスがつながると予測されています。今後センサーなどもどんどんネットワークにつながってくるでしょう。すると、ネットワークに接続されたモノどうしが情報やデータをやりとりする、M2MですとかIoTなどといわれますが、そういった形態が増えていきます。ここでやりとりされる情報やデータもメッセージング技術の対象になります。

電気の検針がイメージしやすいかもしれませんね。現地へ出向いてメーターを確認することが多いですが、メーターをネットワークにつなげ、ネットワーク経由でメーターの数値を収集する仕組みが実現しようとしています。そのような仕組みが増えてくると、メッセージング処理に膨大な負荷が掛かってきます。そういった背景からも、この超高速メッセージング技術はますます求められる技術です。

急速に増加するメッセージにも負けない技術なのですね。

水谷はい。また、膨大なメッセージを高速に処理するという、全体的な性能向上だけでなく、局所的な改善も求められていました。具体的には、一時的な大量トラフィックに対し、流入量を制御する方法についてです。

例えば年末年始、新年を迎えた瞬間に「あけましておめでとう!」とメールを送る人も多いと思います。そのように、同時に大勢の人がメールを送信すると、瞬間的に通常の何倍ものトラフィックが集中してしまう、バーストトラフィックという事象があります。その一時的な事象に対して処理が追いつかず、メールの送信遅延や送信規制が発生するという問題がありました。かといって、バーストトラフィックに備えてシステムの規模を大きくしてしまうと、通常のトラフィックに対しては容量が余ってしまい、コストばかりが掛かります。ですから、通常のトラフィックに対応できる規模でシステムを構築し、かつイレギュラーな大量トラフィックに対しても、システムをダウンさせずに対応できる制御方法が求められていました。

木下「超高速メッセージング技術」は、全体的なデータ量の増加に対応するための高性能化と、一時的な大量トラフィックに対する制御の最適化、この両方を実現する技術なんです。

図1 ビッグデータ時代と超高速メッセージング技術
超高速メッセージング技術が必要となっているビッグデータ時代を示した概念図

インメモリ型分散KVS×日立の技術

まず、膨大なメッセージを高速に処理する仕組みについてお聞かせください。

木下従来方式では、集配処理を行うサーバと、一時的にメッセージを格納しておく外部ストレージでシステムが構成されていました。これは、ネットワーク障害やサーバ障害が起きても確実にメッセージを届けられるよう、受け取ったメッセージをいったん外部ストレージの「キュー」と呼ばれる格納領域にバックアップし、それから配信する仕組みだったからです。

しかし、この構成では、外部ストレージへの書き込み処理に時間が掛かり、高速な集配処理ができません。また、メッセージ量に応じてサーバを増設しようとしても、ネットワーク構成の見直しなど、都度さまざまな設定が必要になり、容易ではありません。

図2 既存方式と新方式の違い
既存のメッセージング技術と新方式との違いを示した概念図

木下これらの難点を解決するために、「インメモリ型分散KVS」という技術を用いることにしました。これは、「インメモリ」、「分散」、「KVS」の3つの言葉から成っています。KVSは、「Key Value Store」の略で、とてもシンプルな構造のデータ保存・管理手法です。拡張性が高く、サーバの増設が容易なため、システム全体の性能を柔軟に変更できるようになります。

このKVSの処理をメモリ上で行うので、「インメモリ」。ディスクへのアクセスが不要になり、高速処理を実現できます。ただし、メモリ上で処理するということは、サーバがダウンしたときにデータが消えてしまうリスクがあります。そのリスクをカバーするために、データを複製し、それらを複数台のサーバに「分散」させ、信頼性を実現する。これが、「インメモリ型分散KVS」の基本的な考え方です。

図3 インメモリ型分散KVS
インメモリ型分散KVSを説明した概念図

構造がシンプルとのことですが、外部ストレージと比較して機能面で不足はないのですか。

木下確かに、KVSはシンプルなデータ管理手法ですから、裏を返せば何もそろっていません。例えば、データベースには、データがおかしくならないように、データ更新時にほかのサーバからアクセスできないようにする排他機能がありますが、KVSにはそういう機能がありません。また、メッセージを一時的に格納する「キュー」の機能もありません。

ですから、KVSをメッセージング技術に適用するにあたって、そういったメッセージングに必要な機能を日立で独自に補完しました。KVSというのは、例えていうならF1のレーシングカーみたいなものでしょうか。乗用車がいろいろな機能を備えた構成であるのに対し、F1のレーシングカーは走ることに特化し、シャーシにエンジンを載せただけのシンプルな構成です。それと同様に、いろんな機能や装備を持ち合わせているデータベースを使うのではなく、高速処理、拡張性という目的に特化して優れているKVSという手法を採用し、そこに必要な機能だけをプラスしていったというイメージです。

このように機能を追加したインメモリ型分散KVSを用いたことで、高性能・高信頼性を実現することができています。携帯電話向けのメールシステムへ適用したところ、メールサーバ1台あたり1時間に1,300万通のメール配信を達成することを確認しました。企業などで広く利用されているオープンソースであるsendmailの180倍の配信性能となります。また、日立の従来技術と比較しても4倍の配信性能です。

受信データの流入量制御を最適化

次に、一時的な大量トラフィックへの対処についてお聞かせください。

水谷メールの場合でお話しさせていただくと、送信元から送られたメールは、ロードバランサーによって、各メールサーバに振り分けられます。その際、一度に大量のデータが送られてきたときは、各メールサーバの負荷が高くならないよう、データの受付をストップしてエラーを返す、流入量制御が行われます。

いままでは何を基準に制御されていたかというと、各メールサーバへの同時接続数です。各メールサーバへの同時接続数が規制値に達すると、負荷が高いと判断し、それ以降の接続に対してエラー応答をしていました。

ところが実際は、同じ接続数であっても、メールサイズ、宛先数などのトラフィックパターンによってメールサーバの負荷は変わります。

例えば、メールの数が少なくても一つ一つのサイズが大きければ負荷は高まりますし、宛先が多いメールは宛先の数だけ配信処理をしなければならないので、負荷を高めます。逆に、規制値以上の接続数だったとしても、各メールのサイズが小さければ、負荷は低くなり、規制が不要な場合もあるのです。ですから、接続数だけで流入量を規制するのは、適切ではありません。

図4 既存方式の問題点
既存の受信データ流入量制御方式における問題点を示した概念図

水谷そこで、接続数ではなく、メールサーバの負荷を監視することにしたのが今回の方式です。具体的には、メールサーバの負荷として一番のボトルネックだったディスクI/O負荷を対象とし、ディスクI/O負荷がしきい値に達したときに、受信規制を行うようにしました。また、その規制自体も、過剰に行わないように工夫しています。

過剰に反応しない受信規制

過剰に規制しない、とはどういうことでしょうか。

水谷従来の方式ですと、一瞬でも同時接続数が規制値を超えると、接続数が落ち着くまで一切のデータを受け付けないという極端な規制をしていました。これだと、処理できたはずのメールに対してもエラーを返してしまう、過剰な規制になりかねません。

木下バーストトラフィックというのは、小さいものなら瞬間的にぽこぽこ発生しているものなんです。
ある1秒間に通常の3倍のデータが送られてきたが、次の1秒間で送られてきたデータはゼロだったとしますね。すると実は平均では1.5倍程度のトラフィックだったということになります。それなのに「3倍来た」と即座にエラーを返してしまうと、本当は難なく処理できたかもしれないのに規制によって処理できなくなってしまうという事態を招きます。単純な規制にはデメリットも多いんです。

水谷ですから、今回の技術では、時間を掛けて様子を見ながら判定・規制するようにしました。この方式によって、処理できるメッセージをエラーにしないこと、また必要最低限の規制で処理を継続させることが可能となります。

どういう仕組みかといいますと、ある一定の規制判定間隔を設け、その間隔中のディスクI/O負荷の累積値を監視します(図5の(1))。そして、その累積値が規制判定間隔×しきい値を超えると、規制が始まります(図5の(2))。

また、その規制も、時間が経過するにつれて規制値を下げ、徐々に厳しくするようにしました(図5の(3))。そうして時間を掛けて規制している間に、ディスクI/O負荷が下がってくれば、規制が解除されます。規制解除の判定も、規制判定と同様に一定の規制解除判定間隔を設け、間隔中のディスクI/O負荷の累積値が規制解除判定間隔×しきい値を下回ったとき(図5の(4))、規制が解除されるようにしました。

図5 規制の仕組み
改善した受信データ流入量制御方式における規制の仕組みを示したグラフ

研究はスムーズにいきましたか。

水谷アイデアを基にプロトタイプを作成するところまでは順調に進められたのですが、実際に動作させるにあたって、規制値をどれくらいにしたらよいか、判定間隔をどれくらいにしたらよいかなど、パラメータの値を決めるのにかなり手を焼いたように思います。何をどのような値に設定したら最適になるかは、自分で考え、試してみるしかなかったので。

検証は、メールを送るソフトウェアなどを使って実環境に近い環境を用意し、トラフィックのパターンをいろいろ変更しながら行いました。お客様へ提案したあとのブラッシュアップを含めて…1ヶ月くらい掛かったでしょうか。

結果、既存方式と比べて、平均応答時間が最大91%短縮する仕組みを導きだすことができました。

図6 評価結果(平均応答時間)
改善した受信データ流入量制御方式の評価結果を示したグラフ

お客様が見える研究のおもしろさ

本番環境でもメールの流入量制御はうまくいきましたか。

写真「木下 雅文(きのした まさふみ)」

木下はい、問題ありませんでした。流入量制御の機能については、大みそかに本番環境で監視していたのですが、いよいよ年明けというころ、やはりメールのトラフィックがすごい勢いで増えてきたんですね。ですが、特に問題なくうまく機能することを確認できました。お客様のシステムでこうやって役に立っているのを体感できて、とてもうれしかったです。

水谷わたしは自宅待機だったのですが、やはりうまく働くか心配で。結果報告を待っていました。無事に稼働したと連絡をもらったときは、わたしも安心しました。

今後もいろいろなお客様につかっていただきたいですね。

写真「水谷 衣津美(みずたに いづみ)」

木下そうですね。超高速メッセージング技術の研究は、主にお客様のニーズを基に行っていますが、冒頭でお話ししたとおり、今後ネットワークにつながるデバイスは急増していきます。適用できるアプリケーションがあれば、どんどん適用していきたいなと考えています。

水谷流入量制御の機能も、いまはメールサーバに特化して適用している段階ですが、今後はセンサーデータはじめ、いろいろなところに適用していけたらいいなと思っています。メッセージング以外にも、何か、ビッグデータの解析や処理にも応用できたらおもしろいのではないかと思います。

研究する立場としても、この研究は実際使っていただけているということがあり、励みになります。研究が世の中に生かせているという点で、自信にもつながっているのかなと。

木下わたしも、お客様に直接研究成果をご提示できることが楽しいです。研究所というとどうしても室内にこもりがちなイメージがあるのですが、研究もしつつ、ビジネスもできますので。かつ、社会貢献とまでは言いませんが、世の中の役に立っているという実感もある。やりがいを感じて研究に携わっています。

特記事項

  • 2014年4月10日 公開
  • 所属、役職は公開当時のものです。
  • ページの先頭へ

類似キーワードコンテンツ

  • ページの先頭へ