QueueLinker : A Framework for Parallel Distributed Data-Stream Processing

(邦訳:QueueLinker : データストリームのための並列分散処理フレームワーク)

 
上田 高徳
日本アイ・ビー・エム(株)東京基礎研究所 研究員

[背景]データストリームと情報のリアルタイム化
[問題]データストリームの並列分散処理の要求
[貢献]データストリームの低レイテンシ並列分散処理フレームワーク開発と超高速Webクローラの実現


 モバイルデバイスやセンサの発達と普及により,データの生成量が大規模化するに加えて,情報のリアルタイム化が進んでいる.このようなリアルタイムに発生し続けるデータの列はデータストリームと呼ばれている.データストリームは,データが到着してから可能な限り早く解析を行うことで価値が増す.顕著な例であるアルゴリズム取引では,数マイクロ秒の処理レイテンシの差が取引の勝敗を分けるとまで言われている.アプリケーションによっては,大量のデータストリームを処理するために並列分散処理も必要になる.これらの要求を満たすアプリケーションを容易に実現するために,データストリーム処理を補助するためのフレームワークが求められている.

 そこで本研究では,データストリームのための並列分散処理フレームワークQueueLinkerを開発した.研究においては,データストリームに対して関係代数演算を適用する処理であるContinuous Queryの低レイテンシ処理を実現するため,(1)関係代数オペレータへのスレッド・CPUコアの割り当て手法,(2)分散処理時にオペレータバックアップを活用して低レイテンシ処理を実現する方法を提案した.また,アプリケーションとして,(3)QueueLinkerを用いた超高速並列分散Webクローラの実装方法を示した.

 QueueLinkerはProducer-Consumerモデルを採用した,データストリームのための並列分散処理フレームワークである.モジュールの実装とモジュール間の接続関係の記述を与えることで,データストリームの並列分散処理を実現することができる.スレッド間や計算機間のデータの転送はQueueLinkerが自動的に行うため,ユーザが記述する必要はない.

 並列処理時には,計算リソースの割り当てが問題になる.本研究では,データストリームに対するContinuous Queryの低レイテンシ処理を実現するため,スレッド・CPUコアの関係代数オペレータへの割り当て方法を提案した.オペレータのCPU使用統計を取り,処理あふれが起きないようにCPUを割り当てつつ,通信回数を削減することでレイテンシを削減する.Continuous Queryに対して,低レイテンシ並列処理の定義付けを行ったのは本研究が初めてだと考えている.

 分散処理においては計算機障害に備えて,バックアップを保持するセカンダリが必要になる.本研究では,プライマリとセカンダリを異なる計算機構成とし,双方を同時に計算させて先に出力された計算結果を利用することで,処理レイテンシを削減する方法を提案した.既存研究ではセカンダリは障害時にしか利用されていなかった.

 さらに,QueueLinkerの並列分散能力を示すために,並列分散WebクローラのQueueLinkerによる実装方法を示した.このクローラを構成するQueueLinkerモジュールはすべてデータ並列で動作可能である.ハッシュ分割により,モジュールごとに任意数のスレッド・計算機の割り当てができ,容易にスケールアウトが可能となっている.実験の結果,毎秒4,000ページ以上のダウンロード速度を実現できた.

 

 (2013年6月17日受付)
取得年月日:2012年3月
学位種別:博士(工学)
大学:早稲田大学



推薦文
:(データベースシステム研究会)


本博士論文は,データストリーム処理において低レイテンシ処理を実現する「並列分散処理フレームワーク」の研究に関したものである.本論文は,提案フレームワークを用いることで,Webクローラのようなアプリケーションを簡単に構築できるとともに,大きな性能向上を達成できることをも示しており,高い実用性を持つ論文として推薦する.


著者からの一言


実用的なものを作ろうという思いと,新しいものが求められる研究の狭間で苦労しました.思い返せばみっともないことも沢山ありましたが,皆様のお力添えもあり論文をまとめることができました.恩師の山名先生をはじめ,お世話になりました皆様にお礼申し上げます.これまで身に付けた知識を生かして今後とも頑張って参ります.