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をキャッシュ- スコア入稿でキャッシュをパージ