#ISUCON 5が面白かった話

チーム友利奈緒です。

ISUCON5に参加してきました。

事前準備

急に参加することが決定したのでGCPのセットアップ程度で、事前の予習などはウェブ上の記事程度になってしまった。 これが結構痛くて、今となってはISUCON慣れしておく必要があったと後悔しています。

当日

言語はRubyで、自分の担当は主にアプリケーションコードの修正の担当をしていました。

午前まずやったこととしては、rack-lineprofで行数レベルで処理時間が長くかかっている箇所を特定し、チームで共有することをしました。 あとはチームで全体の構成を見たり、テーブル構成を見たりして、問題の洗い出しをしていました。

午後はテーブルにインデックスを張ったり、UnicornやNginxの設定見直しやN+1クエリを潰したり、一部Redis化したりしていきました。お昼すぎくらいまではTOP20に入るくらいのスコアは出ていました。しかし夕方に差し掛かるにつれて、だんだん煮詰まってきました。

ここででたまらずCharlotteを流し始める。

やっぱり友利奈緒なんだよな〜と言いつつfootprintsテーブルをRedis化し始めるも時間が足りず、結局スコアは伸びませんでした。

感想

反省としては行き当たりばったりの修正が多かった気がするので、少し我慢して着手し始める前におおまかにやることを洗い出す。そしてだいたいの方針を固めて、もう少し共有しながら進めていったほうが良かったのではないかと思います。 あとは、ベンチマークが走っている時のログや、topなどを見ずに夢中でコードを書いていたので、その辺りも見ていくべきでした。

とにかく面白かったし、何より悔しかったです。 問題が出され、解答してスコアが出る。これだけでもすごく面白かったですし、自分の実力がスコアとして、対外的にわかるというのはとても刺激になりました。

また今までは、参加せずに様子を眺めているだけだったのですが、実際に参加してみると想像以上に良かったです。 8時間チームで集中して協力して、問題を解く。終了後に反省会、感想戦をする。他の参加者の知見を得るというのが本当に勉強になるし、面白かったです。

技術的には、実装のアイデアとスピードがまだまだでした。もっと貢献できるように頑張ります。 一年間修行して、また再び挑みたい。