JPUG Newbie Hackerson 伊東
JPUG Newbie Hackerson 伊東に参加してきましたよ。
今回の参加者は7名(坂田さん@座長、大山さん@幹事、澤田さん@講師、Amitさん@副講師、喜田さん、大川さん、ぬこ)。
講師の 澤田さん が9.5, 9.6に対する機能追加のパッチと、レビュー観点を事前に用意してくれたので
あまりgdgdになることなく合宿を進められたのかなと。
前半
後半
- 後半は、澤田さんが用意したパッチの例を元に、レビューや検証を各自で実施。
自分がやった課題(5_sample_rate_to_auto_explain)
- 澤田さんから提示された観点
- 本当に負荷が下がっているか?
- その代わりにどこかの負荷が上がっていないか?
- サンプリングの機能はちゃんと動くか?
- デフォルトはどうするか?ないが最適か?
- 他のモジュールと組み合わせても問題なく動くか?
- まず、メールとパッチ後ソースから仕様を把握
- random()とsample_ratioを比較して、sample_ratioを上回ったら
explain analyze情報の収集と出力をスキップする、という改造っぽい。
- make check
- 何も動かない・・・auto_explainにはリグレッションテストが実装されてなかった。(ノ∀`)
[nuko@localhost auto_explain]$ make check rm -rf '/home/nuko/src/postgresql'/tmp_install /usr/bin/mkdir -p '/home/nuko/src/postgresql'/tmp_install/log make -C '../..' DESTDIR='/home/nuko/src/postgresql'/tmp_install install >'/home/nuko/src/postgresql'/tmp_install/log/install.log 2>&1
- ratioにより負荷が軽減するというのをpgbenchで確認。
が、sample_ratioが1.0が0.75よりもusが小さい理由は、追いきれてない。
- ratioによってログ出力量が減少するのは確認できた。
- ログ出力量の減少によるスループットの向上も確認
- パラメータのデフォルト値
- contrib/auto_explainのauto_explain.log_analyze パラメータ、
実は9.6で提案されている auto_explain.sample_ratio で代替できたりしないかなー。
-
- で、デフォルト値を0にしておく ⇒ auto_explain.log_analyze = false と実質同じ。
- でも互換性を考えると、auto_explain.log_analyze パラメータを残さざるをえないのかなあ。
- ⇒澤田さんコメント:contribだったら、互換性をなくすという提案もありかも?
- 他のモジュールと組み合わせても問題なく動くか?
- Executor_Run_hookを使っている、俺々HOOKモジュール(pg_sulog)と、auto_explainを組み合わせて、相互の機能が動作するか確認。
- shared_preload_libraries = 'pg_sulog,auto_explain'のパターンと
- shared_preload_libraries = 'auto_explain,pg_sulog'
を検証。こういうときに自分で作った拡張モジュールがあると、いろいろ捗る。
- ソースやドキュメントのtypoチェック
- ざっと見したけど見つからず。