73 views
# PISCON11 感想戦 2023/11/05 参考: [PISCON感想戦(2年前)](https://md.trap.jp/iwO0BQmcTgGIzX0IM50oCA) ## 参加者(予定でも) - **リアクティブ二子玉川~♪ (1102849)** - :@pikachu: pikachu - :@ikura-hamu: ikura-hamu - :@H1rono_K: H1rono_K - **織時屋 (1360191)** - :@oribe: oribe - :@toki: toki - :@eiya: eiya - **mazrean (110960,1591005)** - :@mazrean: mazrean - **tetora (674695)** - :@Ras: Ras ## 各チームやったこと(各スコアもあると良さ) --- ### 織時屋 https://github.com/oribe1115/piscon2023-11qualify [織時屋 PISCON改善ログ(転記) - traP HackMD](https://md.trap.jp/frLN1lxwTn2PFij2M-R8Ow?view) スコアごとにタグ打ってるので、そのときの実装を辿れるはず https://github.com/oribe1115/piscon2023-11qualify/tags DBサーバーを殺しまくるのはやめましょう https://q.trap.jp/messages/acbf4f2d-2f5d-47f7-a59b-241001aec5f1 --- ### リアクティブ二子玉川~♪ | テーブル名 | isu | isu_condition | user | isu_association_config | | -------------------------------------- | ---------- | ------------- | -------------------------- | ---------------------- | | POST /initialize | | | | | | POST /api/auth | | | Write | | | POST /api/signout | | | Read(getUserIDFromSession) | | | GET /api/user/me | | | Read(getUserIDFromSession) | | | GET /api/isu (tx) | Read | Read | Read(getUserIDFromSession) | | | POST /api/isu (tx) | Write/Read | | Read(getUserIDFromSession) | Read(getJIAServiceURL) | | GET /api/isu/:jia_isu_uuid | Read | | Read(getUserIDFromSession) | | | GET /api/isu/:jia_isu_uuid/icon | Read | | Read(getUserIDFromSession) | | | GET /api/isu/:jia_isu_uuid/graph (tx) | Read | Read | Read(getUserIDFromSession) | | | GET /api/condition/:jia_isu_uuid | Read | Read | Read(getUserIDFromSession) | | | GET /api/trend | Read | Read | | | | POST /api/condition/:jia_isu_uuid (tx) | Read | Write | | | GitHub:github: https://github.com/reactive-futakotamagawa/23piscon2-11q スコアごとにタグ打ってるので、そのときの実装を辿れるはず2 #### 初期スコア 1798 #### isu_conditionにIndexを貼る 11327 #### アプリのログを切る、getTrendのN+1を改善 18208 #### conditionのキャッシュを最新の1件だけに 23011 #### PostConditionを数百ミリ秒毎に更新 27837 #### IsuConditionにconditiou_levelクエリを追加 39213 GetIsuConditionが遅いので、Limit付けれるようにするためにconditiou_levelクエリを追加 #### グラフの区間を必要な分だけに 43000 #### サーバー分割 68313 1台目 nginx + /api/condition/ 2台目 DB 3台目 他のAPI #### dropProbability 134880 #### trendを数百ミリ秒毎に更新 パラメーター調整 211842 #### isu_conditionのPrimary Key変更 285906 #### count_isuをキャッシュ 300128 #### getIsuIconをインメモリキャッシュ 313230 #### ログを切った 501978 #### バグ修正 軽い改善 Unix Domain Socket 500159 #### jsonエンコードをsonicで行う prepared-statementを適切に使う txを消す パラメーターを調整する 1102849 ### mazrean #### 今回 https://github.com/mazrean/piscon2023-2 #### よそでやった時(ベンチマーカーハックあり) https://github.com/mazrean/isucon-shojin-2023-1 ##### conditionのinsertをworker化 7382 ##### sessionのキャッシュ ##### trendのnginxでのキャッシュ ##### graphのtimestampでのfilter ##### icon書き出し ##### サーバー分割(appとdb分離) 12万ぐらい? ##### 確定したgraphのキャッシュ 15万ぐらい? ##### dropProbability=0 20万ぐらい? ##### unix socket 385097 ##### 計測off 1591005 ### tetora https://github.com/tetoraorg/2023-piscon2 ログの確認が厳しすぎて断念 - 急上昇ポイント - postIsuConditions bulk - 1k -> 14k - limit 1 - 14k -> 18k - 多分nginx & getTrend N+1? - ->40k - isuの存在確認キャッシュ - ->60k - trend cache - 160k -> 480k - 悩みポイント - 点数の再現性がない - 100k~600kまでブレる - ベンチによって/assets/vendor.ee7444dd.jsの静的配信が効いたり効かなかったりする - セッション管理がCPU食う - ![](https://md.trap.jp/uploads/upload_d313b70947335255de1c3181a0a82dc5.png) --- ## ISUCON11 参考情報 ### ISUCON11 参加チームのスコアとブログまとめ :::spoiler **注意! ネタバレ! 1位のスコアや予選突破スコアが出てきます! 注意!** [全チームの点数まとめ](https://isucon.net/archives/56021246.html) | 順位 | スコア | チーム名 | ブログ | | -------------------- | ------- | ----------------------- | --------------------------------------------------- | | 1位 | 1464232 | shallowverse | https://www.y1r.org/posts/20210831-isucon11-qualify | | 2位 | 1026200 | 都営三田線東急目黒線... | https://blog.agatan.dev/posts/isucon11-qualify/ | | 3位 | 919720 | NaruseJun | https://6715.jp/posts/30/ | | 予選突破最低点(一般) | 106094 | 俺達の戦いはこれまでだ | | | 予選突破最低点(学生) | 60327 | 雑談係 | | 4位 https://sfujiwara.hatenablog.com/entry/2021/08/23/174355 一般の予選通過枠は上位25位 学生の予選通過枠は上位25位を除いた学生上位5位 ::: ### 公式解説 :::spoiler ネタバレ(リンクだけど) https://isucon.net/archives/56044867.html :::