# 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
:::