Skip to content
This repository has been archived by the owner on Aug 23, 2021. It is now read-only.

スプリント会 #3

Open
tatsuru opened this issue Aug 19, 2021 · 18 comments
Open

スプリント会 #3

tatsuru opened this issue Aug 19, 2021 · 18 comments

Comments

@tatsuru
Copy link
Owner

tatsuru commented Aug 19, 2021

  • 進捗報告
  • ふりかえり
  • スプリント計画
/remind here おわり @channel in 15 minutes
/remind here qkおわり @channel in 5 minutes
@polamjag polamjag pinned this issue Aug 19, 2021
@polamjag
Copy link
Collaborator

Sprint 0

  • polamjag
    • アプリケーションマニュアル流し読みした
    • Goのソースコードちょっと見た
  • pastak
  • tatsuru
    • CFn 適用して動作確認完了
    • ソースコードpushした
    • スペックはまあ普通そう

ふりかえり

  • エンドポイントの数は少なそうだけどシーケンスが複雑
    • 外部サービスがいるため
      • ログインとか、なんか仕込まれてるんじゃないか

スプリント計画

  • もうちょっとマニュアル眺めつつソースコードも見る
  • Webから普通に触れるようにもなっているのでつついてみる

@polamjag
Copy link
Collaborator

Sprint 1

  • tatsuru
    • レギュレーション一通り読んだ
    • Webちょっとさわった
    • データの雰囲気見た
  • pastak
    • コード2/3くらい流し読みした
  • polamjag
    • Webさわりながらコード眺めた

ふりかえり

  • なんとなく全体像を理解してきた
    • alp の集計結果をそろそろ見たい

スプリント計画

  • tatsuru
    • ログ出してalp見れるように
  • pastak/polamjag
    • やれると良さそうなことをバックログに積んでいく
    • prioritizeするのはスプリント会でやるという想定

@polamjag
Copy link
Collaborator

Sprint 2

ふりかえり

  • alp すぐ出せてよかった
  • ロジックがテクいものがちょいちょいあって、いじったあとにベンチ落ちたらめっちゃハマりそう
    • 優先度の考慮が重要そう

スプリント計画

@polamjag
Copy link
Collaborator

Sprint 3

  • tatsuru
    • もうちょいでデプロイ設定+MySQLのログ見るのができそう
  • pastak/polamjag
    • done 存在確認に count(*) 使うのやめる #10
    • N+1対処
      • INNER JOIN 先が isu_condition テーブルなので気まずい
        • 行数をうまく絞るにはウィンドウ関数いるんじゃないか
    • 先にインデックス貼って回るのが良いんじゃないか

ふりかえり

  • wt: 作業してるけどこのペースでいいのか不安になってきた
  • グラフ周りとか明らかに壮大な感じなので不安があるが脳はノッている
    • まだ全く触ってないので見当もついてない

スプリント計画

  • pastak/polamjag
    • MySQL インデックス
    • getIsuList N+1 つづき
      • 終わらなかったら次のスプリント会で考える
  • tatsuru
    • デプロイ
    • MySQLクエリ分析

@polamjag
Copy link
Collaborator

Sprint 4

  • wt
    • デプロイできるようになった
    • MySQL は手つかず
  • pastak/polamjag
    • 勘でインデックス貼った
    • N+1 脱出どうするか〜っていうの話してたら終わった
      • lastConditionId みたいなの UPDATE していったらいいんじゃないか、一方で condition POST するごとに UPDATE するのは気まずいのでは、というので議論してたら終わった
      • やってみないとわからなそう

ふりかえり

  • インデックス追加で??スコアが 17000 くらいまできたのは良かった
    • まあフルスキャンしてそうだったしね……
  • ノッてきたのでペアプロやめてもいい説
    • T: 詰まったら無条件でペアプロ再開する

スプリント計画

  • alp ベンチマーク記録会場 #6 (comment)
    • dropProbability 変えてみる? やれると良さそうなこと会場 #7 (comment)
    • /api/trend のキャッシュ
      • conditional get
      • スコアが出なくなるだけでキャッシュはめっちゃできる
    • GET /api/condition/:jia_isu_uuid 探検 → pastak
    • GET /api/isu/:jia_isu_uuid 用のインデックス改善 → polamjag
    • 分散の準備 → wtatsuru
    • GET /api/trend 眺めてキャッシュに思いを馳せる → polamjag
    • MySQL クエリ分析 → wtatsuru
      • インデックス取りこぼしとかがないか見れたらよさそう、くらいで

@polamjag
Copy link
Collaborator

Sprint 5

ふりかえり

  • MariaDB 意外と勝手が違う
  • ホワイトボードに文字がかけると便利
  • ちゃっちゃかやらないと時間が足りない

スプリント計画

  • polamjag
    • GET /api/trend グローバル変数キャッシュ続き
  • wtatsuru
    • MariaDB 続き
  • pastak
    • GET /api/condition/:jia_isu_uuid 探検もうすこし
      • 暇な人が現れるまで or 今スプリントじゅう

@polamjag
Copy link
Collaborator

polamjag commented Aug 21, 2021

Sprint 6

  • wtatsuru
  • pastak
    • GET /api/condition/:jia_isu_uuid の出題者の意図を完全に理解して解法も思いついた
  • polamjag

ふりかえり

  • pastak: condition のお膳立てに気づけてよかった
  • wtatsuru: 分割わかりやすい気がするけど悩みポイントは多そう
    • POST /api/condition は明らかに分けるべき
    • テーブル単位で分けるのか、とかいろいろありそう
  • pol: まあ Go 書けるなという感じになってきた (本当か?)
  • dropProbability いじれてないのはまずい
    • 昼休みに回してみる

13:45 まで昼休み


スプリント計画

  • polamjag, pastak → GET /api/condition/:jia_isu_uuid
  • wtatsuru → 分散
  • その後
    • 分散後の alp の結果みて考える
      • icon の MySQL 脱出
      • conditional get 整えて回る

@polamjag
Copy link
Collaborator

Sprint 7

ふりかえり

  • pastak: ISUCONでしかSQLを書かないのでやばい
  • wtatsuru: 分散は一つ一つは大したこと無いけど色々話題がある
  • polamjag: 普段やらないことはそんなにできない

スプリント計画

  • polamjag, pastak → GET /api/condition/:jia_isu_uuid 引き続き
  • wtatsuru → 分散 引き続き

@polamjag
Copy link
Collaborator

Sprint 8

  • wtatsuru: nginx レイヤーの分散とかDBを移すとかはできた Nginx bunsan #18
  • pastak/polamjag: GET /api/condition/:jia_isu_uuid alter table とかはできた condition対応会場 #17
    • insert するときにこれを使うのと、select 時に考慮するのはまだ

ふりかえり

  • wt: DBがとにかくめっちゃくちゃ忙しいけどどうしようもないのでは
    • read replica で読み書きを分離とかはあるが、その前にDBの独立ホスト化をしたほうがよさそう
    • dropprobability 下げるとか
  • pasta/pol: 悪くてもあと2スプリントくらいでケリはつきそう
    • アプリケーションが読みやすくて助かる

スプリント計画

  • pastak/polamjag: condition 系カラム整理
  • wtatsuru: DBの独立ホスト化と dropprobability 調整

@polamjag
Copy link
Collaborator

Sprint 9

ふりかえり

  • 手元で書いて本番でデバッグしていてサイクルが長い
    • こんなもんという気はする
  • あと3時間しか無い

スプリント計画

@polamjag
Copy link
Collaborator

Sprint 10

ふりかえり

  • 017fd44 思い出せてよかった
  • 試行錯誤の時間をどう確保していくかが課題そう

スプリント計画

  • pastak/polamjag: condition対応会場 #17
    • insert 時に新たなカラムを考慮するようにする (簡単)
    • select 時に考慮するようにする (少しかかりそうだがやるだけ)
  • wtatsuru: conditional get 投入 + 試行錯誤

@polamjag
Copy link
Collaborator

Sprint 11

ふりかえり

  • 3 で互換性チェックが死ぬ理由がわからなくて不気味
  • condition対応会場 #17 進み具合はまあこんなもんかという感じ

スプリント計画

  • wtatsuru: DB の分割をもうちょっと模索する
  • pastak/polamjag: condition対応会場 #17 完遂、終わったら icon アップロード

@polamjag
Copy link
Collaborator

Sprint 12

ふりかえり

  • pol: 酸素が足りてない気がする
  • mismatch: データが正しくありません で互換性チェックコケるのは不気味

スプリント計画

次qk

@polamjag
Copy link
Collaborator

Sprint 13

ふりかえり

  • condition対応会場 #17 長かったけど終わってよかったね
    • CPUの負荷のかかり方が変わった
    • ベンチの傾向が変わってそうな雰囲気

スプリント計画

@polamjag
Copy link
Collaborator

Sprint 14

ふりかえり

  • isu.image をファイルに書く #20 普通に考慮漏れっぽいのでやれば終わりそう
    • 対応できたとしてスコアどうなるかって話はある
  • 最後作戦むずい
    • あと1時間

スプリント計画

@polamjag
Copy link
Collaborator

Sprint 15

ふりかえり

N/A

スプリント計画

  • 分散調整したら 1.5 倍くらいは狙えそう
  • wtatsuru: icon の ETag など
  • pastak/polamjag: trend 眺める

@polamjag
Copy link
Collaborator

Sprint 16

@polamjag
Copy link
Collaborator

Sprint XX

  • icon のキャッシュ成功
  • nginx の分散を手で調整して 3 がちょっと仕事するようになった
    • DB ちょっと暇
      • dropProbability を調整したら忙しくできる
    • 1 番の仕事をオフロードしたい、が、ベンチが動かないので試しにくい

スプリント計画

  • スコアの計測方法を再確認

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants