1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

isucon14に参加してきました(5400点くらい)

Last updated at Posted at 2024-12-09

isucon14に参加してきました

友達に「isucon出ない?」と誘われたので初参加してきました。
仕事が繁忙期だったりプライベートが諸々いそがしかったのも有り、素振りが5時間くらいしかなかったのでisuconとはの概要をさら~っと把握したくらいで、あまりセオリー的なのはわからない状態で突撃しました。

今年のお題

ライドチェアというライドシェアサービスがお題でした(動画のクオリティがすごい)
この世界では椅子が目的地まで自分を運んでくれるそうです。

やったこと

1. MySQLを別サーバーに移行

競技開始時点では3台のサーバーにそれぞれアプリもDBも乗っている状態だったので、サーバーの役割を分割させることにしました。
いらないサービスを全部止めてから(APPのservice、cronとか)作業したので、特にハマることなくスムーズに行ったのですが、他チームでDB分けるのハマった、みたいな投稿があったので、いらないものは止めてから作業するのはよかったかもしれません。
とにかくDBの負荷が高かったので、DBサーバーを作ることでリソースをいい感じに使えるようになりました。

2. インデックスをはる

  1. をやっている最中チームメンバーがインデックスを張ってくれました。
    点数めちゃ伸びた、すごい、インデックス大事

3. スロークエリ出してみる

MySQLのスロークエリを出しました。
pt-query-digestも使ってみて、チームメンバーにクエリ修正をお願いしました。(修正は間に合わなかった)

4. 椅子のマッチロジックを変えてみる

椅子のマッチロジックが「配車を受け付けている椅子をランダムで1台ピックする」というロジックだったので、せめてもの思いで一番近い椅子をマッチするようにしました。
ただ、チームで言語はnodejsを採用することになっていたのですが、私のほうが1mmもnodejsを触ったことがなくコードを読むのが精一杯だったので、コードはChatGPT(GPT-4o)に書いてもらいました。
提案されたコードはバグなく動くレベルでAIの進化に感動しました。
(プロンプトを上手に使う能力が求められますね...)
ちなみにこれも結構点数が上がりました。

...とこんな感じで初isuconは5400点くらいで終了しました。

やりたかったこと

  • 決済周りの処理を別サーバーに切り出し&ロジックを読み込みたかった
  • マッチ速度改善したものの、ユーザー様の不満度が依然として高めだったので、もっと他のロジックを考えたかった(が、具体的にどうしたら良かったかまではわからず)

感想

  • 楽しい!!!!(サーバー飛ばしても決済できなくなっても誰からも怒られないので、試したいこと試したい放題)
  • コード読む時間が全然足りなかった
  • 意外とアプリケーションのロジック触ることになった(もっとサーバーやミドルウェア周りのチューニングをするイメージだった)
  • AIすごい

運営の皆さん&一緒に出てくれた友達の方ありがとうございました!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?