ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

Asakusa Frameworkとは(2016版)

2016-12-01 00:54:59 | PG(分散処理)

Asakusa Framework Advent Calendar 2016の1日目です。

アドベントカレンダーの初日ということで、2016年時点のAsakusa Frameworkの紹介を書いておきたいと思います。


Asakusa Frameworkは、分散バッチアプリケーションを開発・実行する為のフレームワークです。
実行基盤としてHadoopSparkを使うことが出来ますが、今年、実行基盤にM3BPが加わりました!
(去年までは「メニーコア対応として開発中」だったものです) 

HadoopやSparkは複数サーバーにまたがって分散処理しますが、M3BPは1台のサーバー上でマルチスレッドで分散処理するものです。
(M3BPのマルチスレッドはOSのネイティブスレッドなので、Javaのマルチスレッドより高速です) 

昨今ではサーバーのメモリー搭載量が増え、数十~数百GBのデータなら1台のマシンに乗るようになりました。そこで、複数マシンでの分散でなく、1台のマシンで処理する方式が実装されたのです。HadoopやSparkのアンチテーゼと言えるかもしれません。
なお、M3BPではメモリーに乗り切らないデータは処理できませんが、AsakusaFWではAsakusaアプリケーションのコンパイルのみでSpark版とM3BP版の両方の実行バイナリーを作成することが出来るので、M3BPで処理できなければ(アプリケーションを変えずに)Sparkで処理する、ということが出来ます。

今のところ、自分が扱っているバッチは最大でもメモリー使用量270GB程度なので、メモリー512GBのサーバーで全てのバッチがM3BPで実行できています。
経験上、M3BPで動かすと、Sparkよりも平均で4~5倍速いです!
(実行時間の例は、Scala関西サミットの資料に少し載せてあります) 

今までSpark(やHadoop)で動かしていたバッチが、リコンパイルのみでM3BPで動くようになるのは、なかなか感動的だと思います(笑)


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Gitリポジトリーのコピー | トップ | バッチのメモリー使用量の確... »
最新の画像もっと見る

コメントを投稿

PG(分散処理)」カテゴリの最新記事