初めてISUCONに参加してきた。ちなみに初めて櫛井さんが主催するイベントに参加してみた。

チームメイト達は何回も素振りという名の練習をしていたのだけど、こちらは家族サービスで鴨川シーワールドに行ってたりして一回練習しただけ。GCPは普段から慣れ親しんでるのでその辺りもあって余裕ぶちかましてましたね!

当日は朝からdotsに陣取り、自分は黙々とコード書いてた。最後に会心の一撃で1400点台から6000点にあげた以外は特にすごい事はできなかったなぁ。トップページが重いのはわかってたけど「その前にやることあるだろ」精神で他のところチューニングし始めたの、時間配分的には間違ってたね。

実装はPerlでデータセットを先にmmapファイルに展開する方式でがんばってやってみました。最終的に会心の一撃はSQLをチューンするより「リクエストごとにKVS的にデータをがっともってきてオンメモリ展開した上でSQLの結果をPerlでフィルタするほうが効果がある」という面白い感じだった。絶対仕事だったら書かないコード書いたぜ…

基本1台のサーバーでデータをシェアすることを考えるとGoで書けばもう少し楽だった気もした。node.jsもだけど、これらの実装がなかったり不完全な形で提供されていたのは楽なプラットフォームを最初から潰しておいたのではないか?という邪推が働いたりもした(多分手が足りなかっただけと思うけど!)

反省点としては実装云々より、やっぱり勝ちを狙いにいくなら鬼の司令塔(fujiwara氏とかkazeburo氏的な)人が一人いるほうがよさそうだなー。「どう実装するか」より、「ここを集中的に、こういう方式を避けつつ調整しましょう」と断定してくれる人がいると時間制限のある作業には良い。ちなみに最後の会心の一撃もuzullaさんが残り1時間半くらいでそういう感じの事言ってくれて「なるほど!言われてみればそうだ」という事で実装したら結果が出たという感じだった。

また参加するとしたら とにかく8時間とか1台とかの制限がきついので、二泊三日で500台くらいのサーバーかコンテナを使う大会だったらもっといいな(やー、むちゃくちゃ言う参加者がいるし、イベントの主催って大変だなー!w)

というわけで初参加、楽しかったです。