ストイックに生きたい
ISUCON 13 で 3 位でした(ultra_fast_gopher)
ISUCON 13 に ultra_fast_gopher(Tsuzu, mox.si, AL1C3) で参加して、214,941 点 で 3 位で入賞した
このエントリーをはてなブックマークに追加

やったこと

リポジトリは ultra-fast-gopher/isucon13 で公開してある、当然ながら言語は Go を選択した。

アプリケーションに対する改善としては下記を行った。DNS の実装や、bcrypt を逃したりがスコアに効いていた記憶がある。キャッシュは最終手段と言われているが、改善できるところがなくなってもキャッシュするとスコアが伸びるので正義であった。

デプロイには GitHub Actions の self-hosted runners を使用して各インスタンスへのデプロイを行い Discord への通知を行った。通知がきたらベンチマークを実行すればいいので便利だった。また、master ブランチおよび PR への push を契機にデプロイを行っていたので、気軽に改善をデプロイすることができ、高速にイテレーションを回すことができた。

インスタンスへの接続には、Tailscale を使用した。セキュリティグループがどうとか気にしなくていいし、GitHub の Organization で tailnet を共有できるのでとても便利だった。

アプリケーションの解析には、pprotein を使用した。pprof やスロークエリを簡単に見ることができるのでとても便利であった。phpMyAdmin もインデックスを簡単に貼れたり便利だった。

やり残した点として、アプリケーションとベンチマーカーへの理解があげられる。アプリケーションの特性を理解し、ベンチマーカーが何をしているのか理解することで、さらに点数は伸ばす余地があったように思う。たとえば、投げ銭やモデレーションといった点に対して対応する時間がなかった。

スクショ

文字だけなのもあれなので、スクショを貼ることにする。

感想

元々毎年別のチームで参加していたものの、チームメンバーの都合により ultra_fast_gopher へ入れてもらったので足を引っ張らないが不安であったが、このように結果を残すことができて良かった。個人としては、ISUCON 7 から毎年参加しており入賞を目標としていたので、3 位という順位を取れ満足のいく結果ではあった。
一方で、改善できそうでできなかった点や、問題に対する理解を深めることでさらに点を伸ばせる可能性もあったので、来年に向け精進していきたい。

景品

「TOP30チーム」と「はてな賞」をもらった。ありがとうございます。

ありがとうございます #isucon pic.twitter.com/JdCEewz2eh

— さかもとりょーた(25) (@let_constant) December 31, 2023
© Ryota Sakamoto, 2023