リアルタイムのデータ分散処理「Apache Storm 1.0」リリース

 リアルタイム分散処理「Apache Storm」の開発チームは4月12日、「Apache Storm 1.0」をリリースした。性能の改善に加えて、様々な機能が加わっている。

 Apache Stormは主にClojureで作成された分散型の処理フレームワーク。フォールトトラレント、堅牢なプロセス処理などの特徴を持つ。高速・大量のデータのストリームに適しており、リアルタイムの分析、オンライン機械学習、継続的コンピュータ処理、分散型のRPCなどの用途に利用できるという。Twitterの開発者が開発し2011年にオープンソースとして公開、その後Apache Software Foundation(ASF)に寄贈した。2014年9月にトップレベルプロジェクト(TLP)に昇格している。Twitterのほか、Yahoo! JapanやYelp、Spotifyなど多数の企業が利用している。

 Apache Storm 1.0は2015年11月に公開されたバージョン0.10に続くものリリースで、「大きなマイルストーンとなるリリース」になるという。性能を強化し、0.10系と比較すると最大16倍高速となり、遅延も最大60%減少したという。トポロジーの性能はユースケースや外部サービスの依存により異なるが、ほとんどの場合で3倍程度の改善が図れるという。

 トポロジーのJarファイル内でトポロジーが必要とするリソースをバンドルするのが一般的だったが、この場合データの更新でトポロジーの再パッケージと再実装が必要だった。この問題を解決すべく、分散キャッシュAPIを導入、BLOBファイルの共有が可能になった。分散キャッシュにあるファイルはコマンドラインから常時アップデート可能で、トポロジーの再実装も不要という。1.0ではApache Hadoop HDFS、Supervisornode上のローカルファイルシステムの2種類を用意する。

 また、ウィンドウベースの処理向けにネイティブのウィンドウAPIを導入した。ウィンドウは主として収集、結合、パターンマッチングなどに利用されており、これまでは独自にウィンドウロジックを構築する必要があった。1.0では2種類のパラメーターで設定できる。

 このほか、インメモリのKey-Valueストアとして機能するオプションのStormデーモンPacemakerが加わった。また、リソース対応スケジューラー、自動バックプレッシャー、タプルのサンプリングとデバッグ、分散キャッシュAPIを活用したNimbusノードの高可用性機能となるHA Nimbusサポートなど、多数の機能が加わった。

Apache Storm
http://storm.apache.org/