チーム「ウー馬場ーイー2」でISUCON本選に参加し7位になりました #isucon

今年も例年通り @matsuu@ishikawa84g と参加しました。

去年のチーム名は「ウー馬場ーイーツ」。今年は「ウー馬場ーイー2」。

今年も、予選・本選ともにとても楽しめました。運営のみなさんありがとうございました。

timeline

予選を8位で突破し、本選は7位でした。 結果、TVer賞をいただきました!ありがとうございます!

他チームのfailに助けられて少しランクアップ!

tver-prize


役割分担はいつも通りこんな感じ。

  • @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ももっと使っていきたいな。


運営のみなさま、いつもありがとうございます。

また来年開催されることを楽しみにしています。

Event 

See also