ISUCON4 本選に出場した #isucon

(2014/11/10 18:29) 書き直しました。


ISUCON4の予選を学生枠5位でなんとか滑り込めたので、本選に出場してきました。

チーム名は、「☆(ゝω・)vキャピ」です。 アイコンがソーニャの人なんてメンバーにいなかったかもしれませんが、察してください。

本選まで

メンバーのうちの一人が、本選当日の都合が付かなくなり、2名で出場することになりました。 残った自分ともう一人は、複数台のサーバーを組み合わせたWebサービスを作った経験がないため、これは大変なことになってしまったと焦るはめに…… とりあえず抜けるメンバーに聞けるだけいろいろ聞いて、なんとかしようとしました。

事前にやったことは、MySQLレプリケーションの方法と、抜けるメンバーが環境構築をやっていたので、環境構築でしていることの確認です。

本選当日

やりたかったこと

1台で大半の処理、残り2台はひたすら動画を返す、という形を目指していました。 具体的には、全ての処理は一旦メインのサーバーに飛ばし、入稿の場合はメインのサーバーで受けたリクエストをそっくりそのまま動画サーバーに投げ、reportはメインのサーバーが必要な情報を取りまとめるというアプローチです。

やったこと

やりたかったことが完成しなかったため、分散処理は一切できませんでした。 完全に1台で完結しています。

その時点でなぜかは分かりませんでしたが、2号機でベンチマークを回すとスコアがよかったため、2号機を初期実装でセットアップして、最後に提出したベンチマーカーに渡すオプションは2号機のみを指定しました。

というわけで、結果的にやったことは、 「2号機でPython初期実装を動くようにしてベンチマーカーを設定した」 だけです。

一つでも何かできれば、もっとすっきりと終えることができたんですが……

結果

ISUCON4 本選結果 : ISUCON公式Blog

25位 7231 ☆(ゝω・)vキャピ

とにかくFAILはしないようにしようとずっと言っていたので、点数が残せたのはよかったです。

疑問点

特に使いこなせる言語が無かったのでPythonを選択しましたが、初期実装一切弄らず6000点を越えていました。 終わってから他のチームの話を聞いたところ、Rubyの初期実装では1000点もいかなかったらしく……

特にswapしてた感じも無かったはずなので別のなにかしらがあったんだと思いますが、知識不足でよく分かりません。

反省点

  • 予選と同じことをひたすらやらかしたこと
    • 実装してみたものの、デバッグがうまくいかず結局完成しないパターン
  • 環境構築にかなり時間を食ってしまったこと
    • 事前の確認不足
  • 思い込みで動いてしまったこと
    • サーバーのスペックは全て同じ?
      • 2号機と3号機のCPUに差があることに気付かなかった
    • 初期実装の言語間にスコアの差はない?
      • 今回はたまたま運がよかったものの……
    • その想定外の挙動はサーバー側が悪い?
      • AdBlockが邪魔してました! 初歩的すぎて恥ずかしいです!

感想

非常に疲れましたが、非常に面白かったです。 フルメンバーで出場できていればもう少し勝負できたかなと思うと、少し心残りではあります。 でも、こうして一つの会場に集まってがっつりプログラムを書く機会なんて滅多に無いので、いい経験が出来たと思います。 問題を解いていて、気付いたというか学んだ点がたくさんあったので、初期状態で提出してしまったものの、得られたものはあったと思います。 来年も開催するそうなので、また来たいです。 予選突破できるかな……

出題・運営スタッフの方々お疲れ様でした。 とても楽しかったです!

特にテコラスさん! お寿司おいしかったです。 名前覚えました。

写真

f:id:minasa757:20141109015031j:plain

f:id:minasa757:20141109015143j:plain

f:id:minasa757:20141109015017j:plain

f:id:minasa757:20141109014913j:plain

f:id:minasa757:20141109015043j:plain

f:id:minasa757:20141109015058j:plain