Treasure Dataの2015年サマーインターンの中間発表 #td_intern

9月4日に行われた,サマーインターンに参加している3人の中間発表のまとめ - HivemallへのFactorization Machineの実装 - HivemallのRandom Forest実装の効率化 - Fluentdのナノ秒対応 続きを読む
3
SKS/ファントムの申し子 @repeatedly

次はFluentdでのSocketManagerによるポート共有の話 #td_intern

2015-09-04 14:13:06
Sadayuki Furuhashi @frsyuki

JVMのバイトコードにコンパイルした方が速そう。asmなど使えばJITが効く。 #td_intern

2015-09-04 14:13:12
SKS/ファントムの申し子 @repeatedly

v0.14から,各ワーカーでportをわけなくても共有出来る仕組みをSocketManagerで実現する #td_intern

2015-09-04 14:14:01
Sadayuki Furuhashi @frsyuki

fluentdのSocketManager。in_httpやin_tail、あるいはフィルタプラグインが高負荷で詰まっているとか、あるいは既にマルチプロセス化しているようなケースだと、設定ファイルは大幅にシンプルにできそう。 #td_intern

2015-09-04 14:15:59
SKS/ファントムの申し子 @repeatedly

デモですでに各子プロセスで同じポートからacceptしているのが動いてる! #td_intern

2015-09-04 14:16:25
tagomoris @tagomoris

最初から、この機能Windowsでも当然動かしたいよね! という要望を当然のように実装計画に入れてくれている、すばらしい #td_intern

2015-09-04 14:17:56
Toru Takahashi @nora96o

最初からWindowsを考慮していて感動した #td_intern

2015-09-04 14:18:11
Sadayuki Furuhashi @frsyuki

「UNIXの場合は簡単で、親プロセスのファイルディスクリプタをUNIXドメインソケットで渡す」 割と簡単でないのだけども、サラリとできるのがすばらしい。 #td_intern

2015-09-04 14:18:15
SKS/ファントムの申し子 @repeatedly

SocketManagerはWindowsも最初から対応!Windowsでも同じように動くように考慮して実装予定 #td_intern

2015-09-04 14:18:44
Sadayuki Furuhashi @frsyuki

Windows環境ではacceptのthundering herdを防ぐために、プロセス間mutexが欲しくなるのか。しかしacceptの負荷が高いと、特にin_http環境では問題になるかもしれないな。 #td_intern

2015-09-04 14:22:47

FluentdとTreasure Dataの内部に関わることやっている3人目の発表

SKS/ファントムの申し子 @repeatedly

次は若きErlangスペシャリストの人の発表 #td_intern

2015-09-04 14:30:27
SKS/ファントムの申し子 @repeatedly

サマーインターンで今やっているのは,Fluentdのナノ秒対応と,Perfectモニタリング #td_intern

2015-09-04 14:31:03
SKS/ファントムの申し子 @repeatedly

Fluentdではミリ秒やナノ秒が欲しいという要望があったが,ナノ秒サポートすればミリ秒もサポート出来るから良いだろうということで,ナノ秒をサポートする #td_intern

2015-09-04 14:32:32
Taro L. Saito @taroleo

既存コードを壊さない配慮。 大事。#td_intern

2015-09-04 14:33:13
SKS/ファントムの申し子 @repeatedly

現状のIntegerとも同じように動くFluent::EventTimeを実装.後方互換性も意識している #td_intern

2015-09-04 14:33:57
SKS/ファントムの申し子 @repeatedly

数百あるプラグインを読んで,この実装で問題ないだろうとチェック済み.凄い! #td_intern

2015-09-04 14:34:53
Sadayuki Furuhashi @frsyuki

Fluentdのミリ秒以下の精度への対応。プラグインAPIの互換性が維持されるのは素晴らしい。使いたいプラグインだけが使える。 #td_intern

2015-09-04 14:36:43
Sadayuki Furuhashi @frsyuki

自動化するにはプロトコルバージョンのネゴシエーションが必要になるな。in_forwardのプロトコルでは拡張が難しい。 #td_intern

2015-09-04 14:37:45
tagomoris @tagomoris

インターン生の書くコードがbackward compatibilityへの配慮に満ち満ちていて、これが業務体験だ! という感がある #td_intern

2015-09-04 14:37:52
SKS/ファントムの申し子 @repeatedly

一つ注意事項があって,Rubyのコードを直接書いて動かすプラグインだと,うまくいかない可能性がある.例えばfluent-plugin-mapとか #td_intern

2015-09-04 14:38:21
Sadayuki Furuhashi @frsyuki

PackedForwardをほどくのは重いな。out_forwardの最適化が効かなくなると、結構オーバーヘッドあるな #td_intern

2015-09-04 14:41:25
SKS/ファントムの申し子 @repeatedly

パフォーマンスの検証.time_as_integerによる互換性維持によるペナルティと,時間をパースする所の問題点 #td_intern

2015-09-04 14:42:35