今年も例年通り @matsuu、 @ishikawa84g と参加しました。
去年のチーム名は「ウー馬場ーイーツ」。今年は「ウー馬場ーイー2」。
今年も、予選・本選ともにとても楽しめました。運営のみなさんありがとうございました。
予選を8位で突破し、本選は7位でした。 結果、TVer賞をいただきました!ありがとうございます!
他チームのfailに助けられて少しランクアップ!
役割分担はいつも通りこんな感じ。
- @matsuu バリバリ実装する前衛
- @ishikawa84g サイトやレギュレーションやコードやログやDiscordを見る情報官
- @netmarkjp 司令塔
利用言語はいつも通りGoで、最終構成は以下。 今回のボトルネックはずーっとDBのCPU利用量で、最後までいい感じにDBを楽にしてあげられませんでした。
- nginx, app(
/api/announcements
以外) - app(
/api/announcements
) - db
"インデックス追加でスコアアップ!" みたいな簡単な改善ポイントがなくて、序盤つらい時間帯が長かったですね。
工夫してるところはだいたい他のチームと同じなんだろうけど、気に入っているのはこのへん。
- cpをln(ハードリンク)に変更
- 成績計算を楽にするために
users_total_score
テーブルを作成して学生ごとのscoreを事前計算し自己成績の計算を省力化 - Nginxで
proxy_request_buffering off;
Zip作成を外部コマンドからGo実装に変更するのは時間効率が悪いと判断して手を出しませんでした。
今回はずーっとDBのCPUネックだったので、クエリ実行時間が長いクエリ( IFNULL
のやつ)にかかりきりになってましたが、コツコツと広くアプローチしてDBのCPUを楽にしてあげていくとまた違った展開になれたかも。
視野を広く持つのはわたしの担当なので、これはわたしの失敗です。無念。
なおDBの複数化や分割は整合性を保ちきれなそうでいい結果にならない感じがしたので実施せず。binlog出すだけでもヘビーだし。
王者fujiwara組の話を聞くと、、、手癖でsingleflightやzip archiveをさっと実装できる練度は流石としか言いようがない。 もっと精進しよう。
@matsuu に tmuxの resize-pane -Z
の存在を伝えたので、今後は実装効率が瀑上げになることでしょう。
わたし自身は最近Pythonばっかり書いていたので、Goももっと使っていきたいな。
運営のみなさま、いつもありがとうございます。
また来年開催されることを楽しみにしています。
See also
- #isucon 初回から参加しているベテラン選手が40代前半のいま本選当日に向けて準備したこと
- #isucon チーム「ウー馬場ーイーツ・ザ・ファイナル」でISUCON14本選に参加し21位になりました
- #isucon チーム「ウー馬場ーイー222」でISUCON13本選に参加し30位になりました
- 「SRE≠インフラなんだけどもう誤解されちゃってるから、DevOps新実装としてSite Production Engineeringはいかがでしょう?」でJAWS DAYS 2022に登壇しました #jawsdays #jawsug
- #isucon チーム「シン・ウー馬場ーイー2」でISUCON12本選に進出し12位になりました