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