大規模なメモリ内ジョブを実行するためにscala-nativeを利用することが可能かどうかは疑問です。メモリ内データ処理にscala-nativeを使用する
例えば、150GBのRAMを必要とするスパークジョブがあるとしたら、スパーククラスターで5x30GBエグゼキュータを実行する必要があるため、JVMガベージコレクタはそれよりも大きなヒープを追い越さないためです。
処理中のデータの99%がコレクション内でStrings
であるとします。
あなたはスカラネイティブがここで助けてくれると思いますか? Sparkの代わりとして、私は意味しますか?
どのように治療するのですかString
? jvmがクラスとして扱うので、このオーバーヘッドもありますか?
JVMの場合のメモリ( "ヒープ")GC制限は、古典的な30GBとは何ですか?私も30GBのような限界に終わるだろうか?
これは一般的に悪い考えですか?インメモリー・データ処理にscala-nativeを使用する。私の推測では、scala-offheapが良い方法です。