Quantcast
Channel: ひしだまの変更履歴
Viewing all articles
Browse latest Browse all 262

Asakusa Framework @SpillとM3BP

$
0
0

Asakusa Framework Advent Calendar 2017の14日目です。

AsakusaFW 0.10.0で公開された@Spillアノテーションですが、これはCoGroup(やGroupSort)でデータ量が多い場合に ファイルにデータを退避(することでOutOfMemoryErrorを回避)するものです。

ということは、Asakusa on M3BPではデータを全部メモリーに乗せるので、@Spillは関係ないのではないか?と思ったのですが。

M3BPでデータを保持するのは「M3BP(C++)が用意したメモリー」上であり、シリアライズされた状態です。ここに入り切らない場合はバッチが実行できません。
これに対し、CoGroupのメソッドはJavaであり、M3BPから渡されたデータはデシリアライズされてJavaのオブジェクトになり、そのオブジェクトがメソッドに渡されます。
したがって、Javaのオブジェクトを生成する際に「JavaVMのヒープメモリー」が足りなくなると、@Spillが付けられている場合はファイルに退避することになるようです。


Viewing all articles
Browse latest Browse all 262

Trending Articles