Go ahead!

Memoization for Everything

Prestoソースコードリーディング #1

| Comments

Presto ソースコードリーディング #1のATND

@tagomorisさんに場所を確保してもらって,LINEで第一回をやりました.

開催の流れ

CROSS辺りでPrestoのソースコードリーディングしたいね,という話が出て, じゃあ俺が立てるので場所はLINE辺りで〜というその場のノリで決まった.

どうせ10人前後だろうということでかなり適当な感じで募集とかやってたんだけど, 応募人数が40人越え,当日参加が25人前後くらいだったので,予想より多かったかなという感じ.

やったこと

全体の概要

俺が軽めにやりました.Prestoの生まれた背景とか,依存している主要なライブラリ, @frsyukiのスライドを拝借しての主要なクラス群の紹介,現在サポートしている型, Slice使ってのデータの持ち方とか.後,最近の変更周りも少し紹介した

HTTPレイヤー

@tagomorisさんが担当で,クライアントが最初に到達するHTTP APIの /v1/execution/v1/statement 周りの 処理の話.ソースコード的にはpresto-server.この辺もairliftにがっつり依存しているので, パフォーマンスが気になるなど真面目に読みたい人はairliftも読みましょう.

Execution

当日のgist

@oza_x86が担当.Coordinator内部でPlanやStageが出来るまでの流れ, Workerで処理がどう進むかとかその辺の話.SplitsやそれぞれのRunnerの処理, 時間が掛かっているタスクの優先度下げるとか,工夫がいくつか見て取れた感じ.

感想

適当にやったわりにはそれなりに上手く進んで良かった.

第二回は,shot6さん,ashigeruさん,feeblefakieさん辺りが担当になってくれるかも? という感じです.またソース読みつつあーだこーだ言い合いましょう.

Comments