isucon3の本戦に「進撃の超大型パティスリー兄弟」として@memememomoと2人で参加してきました。

先ほど無事に京都に帰ってきたので、忘れない内にブログを書いておきます。
それにしても、isuconが終わるとこの季節は妙に寂しさを感じます。

結果から書くと、17:00頃までは1位になったり2位になったりという状況でしたが、
その後は進撃できず、18時のコンテスト終了時点では6位でした。
また、本番計測ではFAILでスコアなしです(おそらく、timelineチェックに引っ掛かったと思います)。
あの短時間(本戦の作業時間は7時間)で、fail回避の調整と、最適な複数台サーバの構築を行ったチームはほんとうにすごいです。

ざっくりとした作業手順は以下のような感じです。
まず、ミドルウェア設定/アプリ仕様などを確認。
次にベンチを走らせ、各種ログ/サーバ状況を確認。
それら結果から、対策方針を相談/決定し、あとはひたすら計測/実装を行いました。
この辺りの作業の流れは予選時より改善していて、意思決定を素早く行うことができました。

アプリ側での対応としては以下のようなもので、トップチームとだいたい同じ方針だったようです。
・画像がPOSTされたときに、各種画像を変換する
・既存画像を予め変換しておく

サーバ構成は、プロキシサーバ4台 + アプリサーバ1台 です。
オープニングムービーを見たときから、この構成が良さそうだと考えていました。
しかしながら、想定以上にチェッカーのfail判定が厳しく、サーバ構成の利点を最大限活かす実装は難しい状況でした。
16:30以降は、その辺りの調整に時間を費やしており、
ブレークスルーを起こすための最後の調整が上手くいかず進撃失敗。

また、DB周りはほとんど手を加えていません。一番のボトルネックではなかったので。
ただ、timeline対策にはもっと時間を割くべきでした。

今回のお題は未設定のサーバが提供されたりと、まさに「なんでもあり」。
普段の業務では、サーバからアプリまで全てに関わることができているので、
その辺りの経験を活かせたと思います。
ぜんぜん話関係ないですけど、カフェエリアのBGMにsuedeoasisとかの曲が流れたりしてて良い感じでした。

最後になりましたが、LINE/面白法人カヤック/DATAHOTELの皆様、
今年もステキなイベントをありがとうございました。

そして、@memememomoに感謝します。ありがとう!