詩と創作・思索のひろば

ドキドキギュンギュンダイアリーです!!!

Fork me on GitHub

ISUCON14に参戦した(カラアゲネイティブ、14,987点)

最近の感じでカラアゲネイティブチームで参加したのだけど、toriclsが参加できないことがわかっており、新メンバーとしてMOSHの村井さんに入っていただいて2024年バージョンとして挑戦。

リポジトリはこちら。

GitHub - motemen/isucon14: カラアゲネイティブ (2024)

最終的な構成については大工事などとくになく、nginx + app*3 + db という普通の構成になった。

pt-query-digestを見ていくところからやっていったのだけど、マッチング周りであるとか、アプリケーションやユーザの理解に基づく改善に手を付けられなかった(手数が足りていなかった、というのもあるが、発想と優先度づけ)のは反省点。村井さんがalpの分析もさっとやってくれて、いつも自分がそこまで手を回せてなかったのが気になっていたので助かった。

あとは思い出せる範囲でざっくりと。

  • いつも通りという感じで自分がリポジトリやデプロイ周辺の準備をしつつ、残りの2名でレギュレーションやアプリケーションの理解を進める。
    • とくに準備をできてなかったのだけど、前回のMakefileを見ながらやっていたら意外とスムーズにいけて、これはよかった。
    • シミュレータまで用意されててすごい。
  • pt-query-digest の結果を見ながら、作戦会議。素朴にインデックスを張る、総走行距離をDBに保存する、冪等キーの対応、SSE化などいくつか手を付けられる方面がありそうだったので、なんとなく割り当てて散。
  • 総走行距離を別テーブルに
    • この変更で微妙にエンバグしてしまい、後に悩まされることになる……。chair_locationを更新しなくなった結果、chair_locationの更新時刻にDB上の値を利用できなくなり、別の値を用意したのが微妙にズレていて、ベンチマーカーから総走行距離がわずかにズレている、という警告を受け取るようになってしまった。
    • 村井さんに見てもらったりして、最終的には直せたけど時間を無駄に食ってしまった。。
  • その後は自分がSSE対応を入れようとしたのだけど、今ひとつスコアが上がらず本体に入れられなかった。。
  • あとはSongmuさんと村井さんがマッチング改善、冪等キー、複数台化などなどやってくれて最終的に14k点まで行ってフィニッシュ! 悔いが残る。

今回、ベンチ周辺で一切困らなかったのですごい。運営の皆様おつかれさまでした&ありがとうございました。

はてなで一緒に働きませんか?