今年も予選なしで全員が一発本選なので、昨年・一昨年に引き続き本選に参加です。
というわけで、今年も例年通り @matsuu、 @ishikawa84g と参加しました。
チーム名が「シン・ウー馬場ーイー2」から「ウー馬場ーイー222」になり、今年は「ウー馬場ーイーツ・ザ・ファイナル」で新たなスタートを切りました。
ザ・ファイナルという名前ですが、特に解散予定はありません。 来年は2が出たりZがついたりするんじゃないでしょうか。 しらんけど。
今年もとても楽しめました。運営のみなさんありがとうございました。
結果は21位でした。去年の30位から上がりました。30%Off!やったね!
息子からは「おめでとう!ちょっと中途半端な数字だけどおめでとう!」という言葉をもらいました。
役割分担はこれまたいつも通りこんな感じです。
- @ishikawa84g サイトやレギュレーションやコードやログやDiscordを見る情報官
- @matsuu バリバリ実装する前衛
- @netmarkjp 司令塔
チームの中ではベンチを回す(のを通じてリズムを作る(?))係です。
最終スコアは29,386点でした。 サーバー3台中、利用したのは2台のみ。DBを別サーバーにオフロードしたのみでした。
ソースコードは公開済みです。
ISUCON参加ベテランな大人としては、
- スコアを残す / failしない
- 再起動試験にパスする
- スコアが概ね右肩上がり
が達成できて良かったです。 コツコツ改善する大人力を発揮できましたね。
@matsuuがEvidence - Business Intelligence as Codeを使ってデータポータルを作ってくれました。
alp / Kataribeもpt-query-digestも使わずに、Evidenceだけで解析できるようになっていました。
evidence.matsuu.net
Evidence凄いですね。超便利。DuckDBの力でもある。
今年もハナからGoで
ここ毎年「今年こそRust」というもののなかなか踏み切れず。特に状況が改善したりしなかったので、今年もRustはハナから諦めてGoでやりました。
実装レベルの詳しいことは@matsuuが書いてくれると思うので、自分は別の観点で。
わが軍のハイライト1
なぞのバグが解消できずかなり苦しみましたが、、、15:00〜15:30にスコアが6,025→21,023と大きく伸びたのがハイライトでした。
ここに至るのはベンチマーカーのこのログがポイントです。
msg=0.0%のライドは椅子がマッチされるまでの時間、61.1%のライドはマッチされた椅子が乗車地点までに掛かる時間、0.0%のライドは椅子の実移動時間に不満がありました
「乗車地点までにかかる時間」と「椅子の実移動時間」は椅子が増えないと話にならんと判断して、まずは「マッチされるまでの時間」を改善して椅子を増やそうと取り組んだのが功を奏しました。
マッチングの仕組みは
MEMO: 一旦最も待たせているリクエストに適当な空いている椅子マッチさせる実装とする。おそらくもっといい方法が
あるはず…
という感じの苦しい実装でしたね。実際物凄い素朴な実装でした。 とにかくじゃんじゃんマッチングさせて、椅子が増えるようにしました。
この時に小細工として、とにかく近くの椅子にマッチングさせるようにしました。
その後は「乗車地点までにかかる時間」と「椅子の実移動時間」を改善するために椅子の速度を考慮してマッチングしたり、移動距離が短いrideには遅い椅子を回したり、移動距離が短いrideのマッチングでは移動距離にかかる係数を増やしてみたり......といろいろ試したものの、効果があったりなかったりでガツンと刺さりはしませんでした。
ここはもう一工夫できたらよかったです。 今になって思うと、別の街の椅子をマッチしても仕方ないので距離ベースで範囲を区切るべきでした。
しかしまあなんというか、冷静に振り返ってみると、シナリオはユーザー過多による過負荷対応で会社に呼び出されているのに、一生懸命ユーザーを増やす取り組みをしていたのはシュールですね。まあそういうもの。
わが軍のハイライト2
DBを別サーバーに委譲したときに、isuride-matcher起因の障害にすぐに気づいて対応できたのは良かったです。 stopしたうえできちんとdisableしたのも大人力でしたね。
再起動試験も一発パスでした。
残り1時間を切ってからの対応だったのでプレッシャーはあるものの、つつがなくできてよかったです。 ドキドキはした。
来年もぜひまたよろしくお願いします。
See also
- #isucon 初回から参加しているベテラン選手が40代前半のいま本選当日に向けて準備したこと
- #isucon チーム「ウー馬場ーイー222」でISUCON13本選に参加し30位になりました
- 「SRE≠インフラなんだけどもう誤解されちゃってるから、DevOps新実装としてSite Production Engineeringはいかがでしょう?」でJAWS DAYS 2022に登壇しました #jawsdays #jawsug
- #isucon チーム「シン・ウー馬場ーイー2」でISUCON12本選に進出し12位になりました
- #isucon チーム「シン・ウー馬場ーイー2」でISUCON12予選に参加し2位で予選突破しました