Skip to content

Instantly share code, notes, and snippets.

@frsyuki
Last active August 29, 2015 14:14
Show Gist options
  • Save frsyuki/dcfb30690fd453542f45 to your computer and use it in GitHub Desktop.
Save frsyuki/dcfb30690fd453542f45 to your computer and use it in GitHub Desktop.
"Embulk-plugin-input-pcapng-files書いた" にコメント

Embulk-plugin-input-pcapng-files書いた にコメント。

本来的にはinputプラグインではなくFile input内のparser/decoderプラグインとして造るべきでは?

その通りで、本来はparserプラグインでしょう。Java側にはParserプラグインを書くAPIがあるのですが、まだそれをJRubyで書く仕組みが無いのです。書きます。 (https://github.com/embulk/embulk/issues/33)

処理対象のファイル一覧→スレッドへの分配あたりを再開発してる感

ファイルを読み込むタイプのプラグインはスレッド数を考えなくても良くて、基本的にファイル数 = タスク数にすればOKです(example_input.rbがまぎらわしいかもしれませんが…)。なぜなら、設定ファイルのexec:のところにスレッド数を書けるからです。 pull-requestしたので、確認してみてください!: enukane/embulk-plugin-input-pcapng-files#1

input/output以外のプラグインがどの程度rubyで差し込みできるのかよく見えない. 要調査.

このあたりに、JavaからRubyのプラグインを呼べるようにしているコードがあります:

task to threadsのベストプラクティスが欲しい…

ファイルを読み込むタイプなら、ファイル数 = タスク数でOKだと思いますが、Parserプラグインではなく、FileInputPlugin側に実装されているべき機能でしょう…まだ無いです。

transactionとrunの間のデータ受け渡し, これでいいのかな感

OKです! オブジェクトの受け渡し部分が隠蔽されているのは、分散処理できるようにするためです。 transactionがrunを呼ぶ前に、間にexecutorが挟まっていて、executorはtaskをシリアライズ & デシリアライズしてから(さらに必要なら別のサーバに渡してから)runに渡しています。

@enukane
Copy link

enukane commented Jan 29, 2015

ありがとうございます!なるほどなるほど。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment