hello-world
webエンジニアのメモ。とりあえずやってみる。

isucon13に参加しました

公開日時

tkuchiki, Konboiとチーム「流れ弾」としてISUCON13に参加しました。

最終スコアは10,569で、最初にDBのindexを追加した以降大きくスコアを伸ばすことができず惨敗でした。

isuconに参加するたびに実力不足を痛感します。精進せねば。

事前にやったこと

当日やったこと

アイコンの静的画像書き出し

静的画像書き出しを行った後、ベンチ実行前の整合性チェックで失敗するようになってしまい、その修正対応でハマる。

icon_hashをDB管理するように修正しつつ、アイコン未設定の場合はNoImage.jpgのハッシュ値を固定で返すことでようやくベンチが通るように。

条件付きGETリクエストの対応には手をつけられず、かつnginxで画像を返すようにもできなかったためスコアは1,000点ほどしか改善せず。

search(N+1)の改善

fillLivestreamResponse でN+1クエリが発生していたのでJOINを使って改善。

この対応でもスコアは1,000点ほどしか改善せず。

その後は、Konboiと一緒にその他の fill*Response の改善を進めている所でタイムアップ。

振り返り

Keep

  • Copilotを活用する
    • 今年もisuconのタイミングでしかGoを触っておらず、かつ今回はローカル環境もない状態だったがCopilotの補完のおかげでコンパイルエラーでハマることはなくチューニングを進めることができたのはよかった

Problem

  • 事前の練習不足
    • 一つ一つのことに時間がかかりすぎてしまうのは練習不足に他ならない

Try

  • 実際の想定環境で練習をする
    • いつもローカルのDocker環境で練習するようにしていたが複数台構成の練習にはなっておらず、アプリケーションサーバ1台分のチューニングで満足してしまっていた

さいごに

運営の皆様、今年も素晴らしい問題をありがとうございました!

チームメンバーの二人も一緒に参加してくれてありがとう


Related #isucon

isucon10予選に参加しました

ISUCON10予選に参加し予選敗退しました。 今年も @Konboi, @tkuchiki と一緒にチーム流れ弾として参加しました。

isucon12予選に参加しました

残念ながら今年も予選敗退でした

isucon9本戦に参加してきました

@Konboiと@tkuchikiとチーム流れ弾として参加し9位でした。

isucon9予選2日目に参加してきました

isucon9予選2日目にチーム流れ弾として参加し、予選通過できました。