ISUCON6 の予選問題が公開されたらふりかえりをするためのメモ
とにかくベンチツールは最速で突っ込む。
インスタンスはCPU2コア、メモリ7GB。 取り扱うデータ量が少ないので、ISUCON用と割り切って全てオンメモリ戦法も有効。
何はともあれキーワード全検索が重すぎるのでどうにかする。 キーワード一覧だけでもRedisに載せるだけでも大分マシ。 大会中出来なかったけど、各キーワードの説明に含まれている単語をキャッシュしておくのもかなり有効か。 (単語が追加されたときの更新は…どうしようか、でも追加された単語だけ調べて更新すればいいから重くないか)
ほんとに極一部のDBはインデックスがなかったので、DBを使うならインデックス貼る必要あり。 また、同じくDBを使うならバッファサイズ等を大幅に増加させるのも有り?
Star周りの処理も重かったようだが、どう重いのか自分は分かっていないので要確認。 isudaとisutarを一つに統合するのがどれだけ効くのか分からないけど、やった方がいいのだろうか。
あとはとりあえずスパム判定か。 Sidekiqなどで非同期的に処理したところもあったようだし、そんな感じでできるならその方がよさそう。 ここもコードをちゃんと見れてないので要確認。
あほこらは…とりあえず考えなくていいかな… 後からやれると効きそうだけど…そもそも実装難度の問題もありそうだし。 あほこら以外のをキッチリやるだけでもかなり改善するはず、と思ってる。