【ISUCON14】1件ずつ処理するMatcherを複数件対応にするとスコアは伸びるのか
前回は、高頻度APIの裏で実行されていたSQLへ複合インデックスを追加した。MySQLの総検査行数は1.5685億行から989万行へ減り、総実行時間も250秒から111秒へ短縮した。 しかし、単発のベンチマークスコアは2,225点から1,685点へ低下した。DBが軽くなっても、椅子とユーザーがマッチし、ライドが完了しなければスコアにはつながらない。 今回は次のボトルネック候補であるMatcherに […]
前回は、高頻度APIの裏で実行されていたSQLへ複合インデックスを追加した。MySQLの総検査行数は1.5685億行から989万行へ減り、総実行時間も250秒から111秒へ短縮した。 しかし、単発のベンチマークスコアは2,225点から1,685点へ低下した。DBが軽くなっても、椅子とユーザーがマッチし、ライドが完了しなければスコアにはつながらない。 今回は次のボトルネック候補であるMatcherに […]
前回のプロファイリング(alp × pt-query-digest)により、Nginxで観測したAPI合計処理時間の約97%が「通知系API(chair/notification, app/notification)」と「位置情報更新(chair/coordinate)」に集中していることが判明した。 これらのAPI内部では、インデックスのないSQLが高頻度に実行されていた。そこで今回は複合インデ […]