夏の終りISUCON10の予選に散った
ISUCON10とは
ISUCONとは「いい感じにスピードアップコンテスト」という腰から砕けていきそうなタイトルを略した、LINE主催のWebアプリケーションスピードアップコンテストのことです。どうやら今年は10回目ということで、弊社のエースエンジニア id:patorash と参加してみました。
事前準備と予備知識
予選数週間前に id:patorash と一緒に過去問にチャレンジしてみました。どうやら ISUCON4の環境が作りやすそうなのでそれで練習してみることに。NginxとSinatra, SinatraとDBをTCP接続からsocket接続に変えたり、静的ファイルはNginxで返すようにしたり、なるほど仕事でやってるようなことをやればいいのね。最後に速度低下を引き起こして申し訳ありません、改善案はコレコレですという障害報告書をWordで書かなくてもいいのね。ということを考えながらその日は終了。
ぶっちゃけ初参加だし素の状態で腕試しを!という気持ちで本番に望みました。
本番
運営側の事情で2時間押しの12時過ぎにスタート。セブンイレブンのカレーライスで腹が膨れて眠気を誘います。 役割分担は当初の予定通り私がインフラのチューニング、 id:patorash がDBのチューニングという感じで進めました。
まぁ詳しいことは id:patorash のブログを見てくだされ。
結果は id:patorash が慣れないMySQLにも関わらずgeometry型でサクッと検索できるようにしてくれてスコアがかなり良くなり800点台に。そこからはうまくチューニングできずタイムアップとなりました。
思ったこと
- NginxもSQLも自分たちの知識でやることやったら、あとは何をやればよいのか正直わからなくなった。
- RubyはSinatraで来ることがわかっていたのであれば、Newrelicやログを取る仕組みを事前準備しておけばよかった。
- Rubyを選択したにも関わらずRubyのコード改善にほとんど取り組めていなかった。
ということで、来年はRubyできる人をもうひとり加えてリベンジしたい思いです。