ISUCON 8予選のKPT

ISUCON 8に参加して予選敗退した。会社の同僚と「チームプロ開」として参加し、自分はアプリケーションを担当していた。結果的にベストスコアは16000くらいで終わった。悔しい結果になってしまったので、KPTして次回に活かしたい。

Keep

  • N+1クエリを直したりSELECT * FROM reservationsのような全カラムを取得する箇所を直すなど、基本的な修正は短時間でできた。
  • 事前に確認しておいたRedisの導入がスムーズにできた。そこまで大きいインパクトはなかったけど。
  • git tag 1310のようにスコアをタグ付けする運用がけっこうよかった。failが続いた局面でどこまでrollbackすればいいか分かりやすかった。

Problem

  • Macに開発環境をセットアップするのに時間がかかってしまった。普段はDocker中心の開発環境で仕事しているので、久々にMySQLをインストールしようとしたらハマってしまった。
  • h2oからnginxへの移行や複数台構成への移行で時間がとられてしまった。アプリケーションの修正を開始したのは15:30くらいからになってしまった。
  • ロックがボトルネックになっていることに気づかなかった。ベンチマークガチャとか言って思考停止していた。

Try

  • 事前に開発環境をセットアップしておく。
  • 慣れない作業でハマったときは思い切ってやらない決断も必要。
  • 時間がなくてできなかったけど、実装を書き直したりスキーマを変更して根本的に改善できるようにしたい。