2014年7月3日木曜日

Flume Java

#FlumeJava: Easy, Efficient Data-Parallel Pipelines

Craig Chambers, Ashish Raniwala, Frances Perry, Stephen Adams, Robert R. Henry, Robert Bradshaw, Nathan Weizenbaum
Google, Inc

Proceeding of PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation

Google論文。MapReduceを置き換えるものとして開発されたJavaのデータ並列ライブラリ。記述力としてMapReduceのスーパーセットであるという主張。複数ノードにまたがる(かもしれない)一連のデータに対して、データ並列でワークフローを書く。この形だとMapとReduceの区別が無く、ほぼフラットに書ける。GroupByという演算があり、これがMapReduceのシャッフルフェーズに相当する。

データ構造はimmutable で次々にデータ構造を作るようになっているが、実際には評価が遅延され、最後の結果を評価したところで、処理のツリーを最適化してから評価するという作り。最終的にはかなり複雑な評価式も一段のMapReduceに落として処理しているとのこと。

たしかに、MapReduceでグリグリ書いていくよりも、ずっと楽だろう。

2010年の論文という点を割り引いても、新規性があるとは思えないが、やはり超大規模環境でちゃんとやってるのが偉いっていうことなんだろう。

0 件のコメント:

コメントを投稿