ISUCON11予選に参加しました

ISUCON11予選に @hilotter、@Konboi と流れ弾で参加して敗退しました。参考実装はRubyを使用しました。

運営の皆様、ありがとうございました。今年もとても楽しかったです。

やったこと

  • Deploy しやすい環境を整える
  • INDEX を貼る
  • DB x 1、nginx + app x 2 の構成にする
  • Session を Redis にする
  • MariaDB を MySQL 8 にする
  • sidekiq を systemd で起動する

ハマったこと

Rack::Session::Redis を導入する際に https://github.com/redis-store/redis-rack#usage をそのまま書いたら :redis_server が設定されなかった

Usage のコードをよく見ると use Rack::Session::Redis が 2つ書いてあり、option を指定しない場合と option を指定するときの書き方が混在しています。これをそのままコピペして :redis_server の値だけ変更しようとすると、2つめの use Rack::Session::Redis が無視されます。(無視されるという表現は正しくないかもしれませんが、そういう動作になるということで…)
これに気がつくのに30分以上かかり時間を無駄にしました(チームメイトのどちらかが気がついてくれました…)。

MariaDB から MySQL の移行がスムーズにできない

この作業を着手する前は、最近の ubuntu 20.04 は apt install で MySQL 8.0.26 をインストールできるし、mariadb 消して apt install すればいいだろう、くらいに思っていましたが、そんなにすんなり MySQL が起動しませんでした。
具体的には以下で起動する状態にできるはずです(ただし、本番環境でやってはいけないオペレーションです、念の為)。

sudo apt purge mariadb* # /var/lib/mysql が残っていたら削除 sudo apt install mysql-server-8.0 -y # mysqldump しておいたファイルを投入する
Code language: PHP (php)

終わりに

運営の皆様、いつも楽しいイベントを開催していただきありがとうございます。
いつも一緒に参加してくれているチームの二人もありがとうございます。役に立てず申し訳ないです。

来年も開催されるようでしたら参加したいです。

Leave a Reply