ISUCON8予選に参加しました!

こんにちは!システム事業部の村田です。

先日開催されたISUCON8予選に、他の社員2名とチーム「ポテチはのり塩派」で3人で初参加しました!

結果としては予選敗退で、再起動試験でfailという悲しい結果・・・でした

最終的なベンチスコアは6894でした

f:id:zenet-tech:20180927182424p:plain

役割としては 私:インフラ 他2人:コード という形で進めました。

そこまでの作業をまとめようと思います。

9:00〜

競技開始 全員でSSHして中の構成を確認して、参考実装をRubyへ切り替えました。 ソースをgitに移したり、ソースを読んだりしていたのですが、ここでhttpサーバーにh2oが使われていることが判明。

まずはh2oを調べるところから始まりました。。。

その間に、残りの2人はコードの解析を進めてくれていました。

10:00〜

コード組2人は、get_events、get_eventがやばいということでそことの戦いを始めていました。 私は、3台与えられていたのでそれを多重化構成にしようとh2oでの複数台構成のやり方を調べていましたが全然見つからず・・・

13:00〜

全然進展せず。。。。

ここで、h2oで進めるのを諦めて、nginxに変えることにしました。 が、2台目、3台目へのアクセスが通らず、firewallなどの設定をずっと調べていました・・・・

15:00〜

コードを触っていた2人が、get_eventを少し改善して、一気にスコアが7643に!

16:00〜

ここで、繋がらなかった原因が起動コマンドでipをバインドしていなかったことが原因でした・・・初歩的すぎる・・・ 無事、2台構成にできたのですが、なぜかスコアが下がる・・・

ここで、諦めて最初の1台で戦うことにしました。

17:00〜

インフラを捨てて私もコードに参戦しました。 POST:/api/userを改善しようと、get_eventの戻りを利用している箇所を着手。 17:50までベンチ通らなかったら諦めるつもりで直していたのですが、結局通りませんでした。

進捗・・・・0・・・・

18:00〜

競技終了

何もできずに終わって非常に悔しかったです・・・

反省点

最初から、nginxで決め打ちで設定を用意しておくべきだったなぁと。。。 あとは、練習でISUCON7の予選問題を解いていたのですが、問題の方向性が全然違ったという感想です。

今回の問題、get_eventを何とかすることに全てがかかっていて、そこに早めにリソースを放り込むべきだった。 効果がないと思ったらガンガン変えていかないとだめですね。本当に時間が足りない・・・

感想

運営の方、素晴らしい問題をありがとうございます。初参加でしたが、非常に楽しかったです! 自分の実力不足をものすごく痛感させられて、勉強しないといけないなと。。。

来年、ぜひリベンジしたいです!!!