ニュース

小規模な基幹バッチ処理の高速化を実現するフレームワーク「Asakusa on M3BP」

 株式会社フィックスターズと株式会社ノーチラス・テクノロジーズ(以下、ノーチラス)は12日、基幹バッチ処理の運用・開発を並列分散処理基盤で行うためのフレームワーク「Asakusa on M3BP」と、その実行基盤「M3(エムキューブド) for Batch Processing」(以下、M3 for BP)を開発したと発表した。いずれも、オープンソースソフトウェア(OSS)として公開されている。

 ノーチラスでは、業務システムのバッチに分散処理の能力を活用するためのフレームワーク「Asakusa Framework」と、HadoopのMapReduceやSparkを組み合わせて、時間のかかる基幹バッチ処理を数十分レベルにまで短縮することを実現してきた。しかし、MapReduceはテラバイト(TB)~ペタバイト(PB)、Sparkは数百GB~TBの大規模なデータを対象としており、数GB~数十GBといった小規模データはその対象になっていない。このため、こうした小規模データを伴う基幹バッチ処理にAsakusa Frameworkを適用しても、分散処理に伴うオーバーヘッドが相対的に大きくなってしまい、高速化に限界があったという。

 今回開発されたAsakusa on M3BPは、このような数GB~数十GBの小規模データを取り扱う、一般的な基幹バッチ処理の高速化を実現するもの。実際の業務データを用いてバッチ処理時間を比較したところ、RDBでは数時間かかっていたものが、Asakusa Frameworkでは、MapReduceとの組み合わせの場合で40分弱、Sparkの場合で4分弱、そしてM3 for BPの場合では2分弱にまで短縮されたとした。

 また、Asakusa on M3BPの処理エンジンであるM3 for BPは、単一ノード上のマルチコア/マルチプロセッサを利用して並列処理を行うため、MapReduceやSparkのように複数サーバーを必要とせず、環境の構築と運用のコストをさらに下げられるとのこと。

 なおAsakusa Frameworkではプログラムの可搬性を実現しており、Asakusa Frameworkを利用して開発されたアプリケーションは、MapReduce、Spark、M3 for BPの各処理基盤上で同じプログラムが実行できる。このため、まず、導入コストが低く費用対効果の高いAsakusa on M3BPからスタートし、より大規模な処理が必要になるに従って実行基盤をSparkやMapReduceへと移行させるような場合でも、アプリケーションの変更をする必要はないとしている。

石井 一志