すごい久しぶりの更新ですが..
いつものメンバーでISUCON12参加しました。 今年は(今年も)事前にほとんど準備する時間がとれなくて、事前に接続確認ぐらいしかしていなくて、ぶっつけ本番の参加でした。
今回の問題
やったこと
- フロントとDBを分離
- 不要なDBロックの削除
- 管理APIからの入稿でN+1やめる
- sqliteをtmpfsに移動
- インデックスの付与など
- その他細かいロジックの修正
ぐらいをやったら8時間が過ぎました.
初期スコアが2500ほどで、 最終的に最高スコアが9000点ほどに。 予選通過スコアが20000点ほどでした。無事通貨ならず.
...しかも、どうも再起動した際にtmpfs がマウントされてなくて、再起動試験時のスコアが上がらなかったようで、 失格扱いに。再起動テスト大事ですね。
所感
他の人のやったことを見ると、全然気づかなかなかったことばっかりでしたが、ボトルネックを計測-> 対策を繰り返して、 着実にスコアを上げられたのは良かったです。
3台サーバがあって、1台フロント、1台DBにしましたが残りの1台が完全に遊んでいたので、てっとり早くシャーディングするべきでした。
プログラムの仕様の理解が甘いので、そういう発想に至らないので、仕様をいかに早く理解するがポイントだと思いました。
あっという間の8時間ですが、とても楽しめました。