ISUCON12に参加して予選3位でした
@rrreeeyyy とチーム「たつや」でISUCON12予選に参加して、3位でした。2年ぶりの本選楽しみです。
予選でやったことをざっとまとめておきます:
- 最終的な構成は
- とりあえずシャーディングを見据えてMySQLへ移行
- flockを消して、トランザクションに
- 諸々DBのインデックスを追加
- スコア入稿部分でデッドロックが発生していたので、削除せず追記のみになるように改修
- player_score_commitテーブル、- player_scoreの- commit_idカラムを追加し、スコアを取得する際に最新の- commit_idの行を取得するように。primary keyがユニークじゃなくなるので適当なauto incrementなカラムを追加。
 
- ID採番をUUIDに
- スコア入稿をバルクインサートに
- connectToTenantDBのtenant ID mod 2で2台を使い分け
- GET /api/player/player/:player_id,- GET /api/player/competition/:competition_id/rankingの結果JSONをキャッシュ- スコア入稿でキャッシュをパージ