なになれ

IT系のことを記録していきます

ISUCONに初参加しました

ISUCON9の予選が9/7,8の日程で開催されました。
会社の同僚と一緒にチームを組んで、初めてISUCONに参加しました。

isucon.net

2人チームでチーム名は「isuconなにもわからない」です。仕事ではNode.jsを使っているのでNode.jsで挑戦しました。
利用言語の比率が公開されていますが、Node.jsの利用者はそんなに多くなかったみたいです。

isucon.net

参考値ですが80番目くらいのスコアでした。

isucon.net

事前の準備

本番でやったこと

  • 効果あり

    • キャンペーンの値を0から4に変更する
    • itemsテーブルにindexを追加する
    • 複数台構成にする
  • あまり効果がなかった

    • ts-nodeからtscコンパイルしてnode.jsでアプリを実行する
    • 外部APIをPromise.allで並列実行する
    • 無駄なFOR UPDATEを除去
  • 改善できなかった

    • POST buyのロック問題

参加してみて気づいたこと

  • 計測の設定などのセットアップをするのが遅い
    • 午前中をほとんど使ってしまった
  • アプリレベルでの計測をシュッとできるようにする
    • 1つ1つconsole.timeを埋め込んで時間がかかった
  • tsc化するのに時間がかかった
    • typescriptに慣れる必要を感じた
  • 改善策がほとんど思いつかなかった
    • SQLは改善ポイントがあまりなかった
    • キャッシュする観点が思いつかなかった
    • 改善のパターンをもっと身につける必要を感じた
  • 人数は3名必要
    • 2名だとアプリとインフラで分かれることになって個人の力がないと辛い
    • 逆に1名でも本戦出場チームがそれなりにいるのですごいと思います

まとめ

準備や本番も含めて良い経験になりました。次回も参加したいと思います。