ISUCON12メモ 当日用
メモ
isu1の元の名前 ip-192-168-0-11
admin, organizerの点数が高い
ドキュメント
やったこと
10:40ごろ開始
初期状態スコア 3094
初期準備開始
並行してnode実装切り替え
スコア 2155
error: 大会結果CSV入稿 POST /api/organizer/competition/9fa52a28/score : expected([200]) != actual(500) tenant:gcpse-wymceh-1658541669 role:organizer playerID:organizer competitionID:9fa52a28 CSV length:15bytes
負荷はmysqldが圧倒的
もう一回回す
2242 エラーなし
11:14 Makefileなど配置 初期準備完了
ログ見る
kt
GET /api/player/competition/*/ranking
GET /api/player/player/* HTTP/2.0
POST /api/organizer/competition/*/score
GET /api/admin/tenants/billing?before=*
pt
SELECT player_id, MIN(created_at) AS min_created_at FROM visit_history WHERE tenant_id = 75 AND competition_id = '27ae98981' GROUP BY player_id\G
billingReportByCompetition
使われてるところ
GET /api/organizer/billing'
GET /api/admin/tenants/billing
REPLACE INTO id_generator (stub) VALUES ('a')\G
dispenseID
POST /api/organizer/players/add
POST /api/organizer/competitions/add
POST /api/organizer/competition/:competitionId/score
インデックス追加
スコア 2280
SELECT visit_historyの速度が70msから10msくらいに
idがREPLACE INTOで作られている
単純にインクリメントで返すのはだめ?
通った スコア SCORE: 2885 (+2885 0(0%))
pt見直す
最初の改善がまだ重い
adminのSQLは初期化では呼ばれないっぽい
visit_historyのgroup byをなんとかする
min(created_at)をなんとかするために別テーブルを作る
insertするときはすでにデータがあったらインサートしない
通った!!!!!!!
SCORE: 3041 (+3135 -94(3%))
エラーが出た
error: 大会内のランキング取得 Get "https://isucon.t.isucon.dev/api/player/competition/9fa534a4/ranking": context deadline exceeded (Client.Timeout exceeded while awaiting headers) tenant:isucon role:player playerID:5f302e65a competitionID:9fa534a4 rankAfter:
ERROR[2] load: load-validation: Get "https://isucon.t.isucon.dev/api/player/competition/9fa534a4/ranking": context deadline exceeded (Client.Timeout exceeded while awaiting headers) tenant:isucon role:player playerID:63b36a24e competitionID:9fa534a4 rankAfter:
もう一回ま合わす SCORE: 3432 (+3502 -70(2%))
エラー変わらず
ランキングの表示がアクセス数に対して遅いだけ?
さらにpt見る
未改善だとSELECT * FROM tenant WHERE name = 'y-nms-1658548613'\Gが重い
ユニークだった 改善の余地なし
もうMySQLでやることない?
負荷がほぼnodeだけになってた
/rankingなんとかする
player の N+1を改善
SCORE: 3465 (+3609 -144(4%))