ISCUON7 予選2日目に参加して予選通過出来ませんでした #isucon

同僚の @kaorimatz と @takanabe_w と計3人で「海南鶏飯」(全員初参加。決起会の時にチキンライスを食べに行ったためそう名付けられた。)としてISCUONに初参加した。 言語はRubyを利用して金曜夜に第6回の予選問題をみんなで通して解いてみるなどをやってみた。

結果としては、いわゆる"Cache-Control: public"を最後までつけられずに304でアイコン画像を配信出来ず、 各サーバーの帯域が足りなくなって負荷レベルをあげられず思うように行かなかった。

"Cache-Control: public"に関しては色々言われているけどハマった側の体験としては、 画像をキャッシュされて配信しないと2段階目以上負荷レベルがあげられず、 他の処理がタイムアウトしてしまうことが多かったため、簡単に出来る改善部分もやりきってこれ以上何すれば良いんだろうか? という状態で詰まってしまったのが少し辛かった。とはいえ、インフラ側を@kaorimatzさんに任せきりになってしまっていて チームとして全力で静的ファイル配信を修正しきれなかったのが敗因だったのかもしれない。

個人としては事前にアプリ内のSQLを集計するスクリプトを準備したり、 当日は、N+1をJoinさせて消したり、DBに入ってる画像を書き出すスクリプトをサクサク書いて、 post '/profile'で新しい画像が投稿されたとこはAPIのなかで直接scpで他のホストに画像を配信するという面白実装して サーバー3台をアプリケーションとして使えるようにしたりというのをやったりして、 普段は味わえない開発体験出来てよかった。

静的ファイル配信極めていきたいなという気持ちになったISUCONだった。 あと参加言語も次回参加するならRuby以外も使えるようになりたいなと思った。