富士通研究所、クラウドサービス向け分散データ保管技術を高速化
株式会社富士通研究所は、クラウドサービス向けの分散型データ保管に関する基礎技術を開発。2011年度以降の実用化を目指していることを明らかにした。
クラウド・コンピューティング環境における、大量のデータ保管およびアクセスのボトルネックに対応するため、注目を集めている技術のひとつに「分散キーバリューストア(KVS)」がある。多数のクライアントにおいて分散処理を行えるスケーラブル性や、データのレプリカによって、故障時にもサービスを止めずに動作できるという特徴を持つ一方、データが分散して保持されるため、複数ノードにまたがる処理には課題を持っている。
今回、富士通研究所が開発した分散型データ保管技術は、従来の分散KVSに比べて、集計処理では約8倍、更新操作の一貫性維持の処理では約7倍の高速化を実現。従来の技術では難しかった、アクセスログからの評判分析の結果を短時間で得るなど、クラウドサービスにおける新たな応用が期待されるとしている。
新技術は、データを集合として一括化し、高速に処理する「集合演算」と、複数データの更新の一貫性を維持する「アトミック更新」におけるもの。
集合演算においては、その基本となる演算子を提供し、それぞれに対して処理の並列化および通信の最適化を行っている。
「従来の分散キューバリューストアでは、『キー』と『バリュー』の単純な仕組みであり、キー単位の操作インターフェイスしか提供されていない。そのため、分散環境ではキーごとに通信が発生してしまい、非効率な状況になっている。1億個のキーがあれば、1億回の通信が発生することになり、0.1msで処理したとしても、1万秒もの時間を要する。昨今では、高速な集合演算が求められている例が多く、分散キューバリューストアにおける大きな課題となっていた」(富士通研究所 クラウドコンピューティング研究センター 槌本裕一氏)という。
集合演算処理の必要性 | 分散KVS上で、集合演算の体系化に成功した |
例えば、ソーシャルネットワークサービス(SNS)においては、ユーザーの閲覧ページのイベントと、ほかのユーザーの閲覧履歴をもとにして、閲覧傾向を素早く分析。新たに訪れたユーザーに対して、「次に見るべき情報」はなにか、といったことを推奨するサービスを、直近15分間の履歴をもとに実施したいという要求などが出始めている。こうした環境では、15分間で100万件のアクセスといった、高負荷な環境においての分析が求められており、それに対応する技術が必要とされていた。
富士通研究所 クラウドコンピューティング研究センター 土屋哲主管研究員【右】と槌本裕一氏【左】 |
「今回の技術では、さまざまな集合演算における分散処理で、基本となる演算子を抽出し、その組み合わせによって高速化できる点が特徴。プログラムを書いたりといったものではなく、数学的なアプローチから課題を解決できるのが、最大のポイントといえる」(富士通研究所 クラウドコンピューティング研究センター 土屋哲主管研究員)という。
一例として、RDB(リレーショナルデータベース)の基本的集合演算のひとつであるequijionを、keyを振りなおした新たなキーバリューストアを生成するrekeyと、バリューごとに同じ関数を適用した新たなキーバリューストアを生成するmapの組み合わせで、記述が可能になる。
「rekeyでは、全ノードを並列に実行させことで、台数に比例した性能が実現するとともに、転送を集約することで通信コストを大幅に圧縮することができる。また、各基本演算子が並列化や通信圧縮されているため、組み合わせによってスケーラブルで、高速な処理が可能になる」(槌本氏)。
先に触れたSNSにおける即時リコメンデーションでの利用を想定し、100万件のデータ集計に適用した場合、サーバー台数が増えるほど効果が高く、「当社の測定結果では、構成台数を2倍にすると、所要時間は2分の1に削減された。別方式による分散バッチシステムに比べても約8倍の高速化が図れた」という。
rekeyとmapの組み合わせにより、equijionの記述が可能になるという | SNSでの即時レコメンデーションなどでの活用を想定したテストでは、リニアな性能向上を実証している |
一方、アトミック更新においては、従来の分散キーバリューストアでは、ほかの更新処理が混ざり、一貫した結果が得られないためにアトミックに処理ができないという課題や、排他処理を用いた場合にはボトルネックが発生して処理が頭打ちになり、サーバーを増やしても台数に応じたスループットが得られない、といった問題があった。
アトミック更新の必要性 | アトミック更新の例 |
「各更新処理が独立した場合には影響がないが、競合する更新の場合、更新順序が矛盾する状況が発生することがある。それを解決しようとする場合、排他処理を採用することが多いが、そうすると、更新処理が独立した場合でも待たされ、サーバー台数を増やしてもスループットが向上しないという課題が出ていた。今回開発した技術では、更新処理は並列に受け付け、投機的に実行するものの、各サーバーではデータごとに命令履歴を保持しているのが特長。ほかの更新の影響が判明した段階で、履歴をもとにして一連の命令を再実行することで、一貫性を維持した」(槌本氏)という。
命令履歴は、更新処理を受け付けた時点でのタイムスタンプをもとにソート。古い命令が遅延などによって後から到着すると、命令履歴の途中に挿入され、それを契機に、命令履歴上の新しい命令や、ほかの命令が連鎖的に再実行される。
「キーごとに命令履歴を保持しているのが最大の特徴。命令履歴を保持する仕組みのため、コストは増加するが、それは極めて少ない量で済む。サーパー数が増加すれば、さらにコスト負担が薄まることになる」(土屋主管研究員)という。
同社が複数キーに対する命令を含む更新処理が多数発生した場合を想定した実測では、サーバー台数を増やすと従来技術に比べて、性能がリニアに向上。24台構成では約4倍、36台構成では約6倍、48台構成では7倍以上の性能を発揮した。
排他処理【左】ではボトルネックが発生してしまっていたが、新技術【右】では、命令履歴の保存と再実行により、データの一貫性の確保と性能向上を実現している | |
新技術の詳細 | リニアに性能が伸びることが実証されたという |
「今後はバックアップ機能の追加など、データの保証精度を高めるなど、運用面での改善を図り、事業部門との連携によって、基盤技術として、サービスへの実装を進めたい。2011年度にはパイロットサービスを開始したい」(土屋主管研究員)などとしている。
なお、富士通研究所のクラウドコンピューティング研究センターは、現在約50人が在籍。クラウドに関する基礎技術の研究などを行っており、今後も陣容を拡大させていくことになるという。