Reload Streaming Pipeline, Window in sideInput, Move to the backend
まだ5月前半のコミットを追随している途中です。
Reload Streaming Pipeline
"This is not yet supported by the dataflow service." とのことなのでまだ利用できないみたいですが、DataflowPipelineDebugOptions など起動時オプションとして --reload を受け付けて、Streaming モードの Pipeline のリロードというのを入れようとしているみたいです。 Pipeline を動かしたままで worker の処理を途中から更新できるようにするってことですかね。末端の処理ならいいけど、Merge や GroupByKey の構成変わるのは大変そう。
Window in sideInput
sideInput での Window/Trigger に関して race condition の修正とのこと。
Streaming モードで Windows がある状態での sideInput がどういう扱いになるのか(どのタイミングのものがその Window で取得できるのか、どう同期されるのか)というのは謎のひとつなのですが(試したことがないです)、WorkItem の処理中はキャッシュしておくようにしたというコミットログなので、やっぱりある程度バッファリングされるみたいですね。 あと WorkItem という新しい語彙が出てきました。WorkItem は Dataflow の Streaming モードの元となっている Windmill の用語みたいです。
Move to the backend
Move GroupByKey expansion to the backend. · GoogleCloudPlatform/DataflowJavaSDK@2eff826 · GitHub
タイトルの通りで、WindowFn つきの GroupByKey をよりプリミティブなオペレーションに展開するのをサービス側にもっていって SDK では展開しないようにしているというもので、これ自体はさほど大きな変更ではないのですが、サービス側に遮蔽される部分を増やす方向で SDK だけ読んでもなぁという感じではありますね。