今回は同僚の @buty4649 と@osamtimizer と参加した。役割的には僕がボトルネック調査しつつ、二人に作業を依頼する感じで進めた。

大きくやったことは、N+1はconditionのtimestampが最も新しいものだけを取り込む latest_isu_condition というテーブルを作って、そこにトリガーでインサート、もしくはアップデートするような状態にして、素直にjoinできるようにしたり、trendをRedisキャッシュしたり、iconをファイルに吐き出したりした。iconはホントはnginxで配信したかったのだが、X-Accel-Redirect を知らずに、認証周りの制約にかかってできなかった。

あとは、conditionのbulk insertをやったり、ReplicaDBを作って、Readを寄せたり色々やったが、なんか1.6万くらいから突き抜けられず、終盤、304をいかに返すかみたいな勝負だなぁと気づいたが、時すでにお寿司なのと、普段あまりそういうことをやってないからとっさに打ち手が出なかった。

感想としては過去一番楽しかった気がする。普段はなんか焦って、どたばたしてしまうのだが、落ち着いて分析しつつ、手を打っていけたと思う。また普段やってることはちゃんとできたし、やってないことはできないって素直な感じだった。

Discordを見ていてなるほどと思ったのが、conditionはどうせ最新の一軒しか見られないのだから、それだけそもそも入れればええんやっての全然やってるときに気づかなかった・・・。

非常に楽しめたし、講評が楽しみです。

ひとまず、参加者、運営の皆様本当にお疲れ様でした、そして有難うございました!!!

%d人のブロガーが「いいね」をつけました。