ISUCON12予選に参加しました
ISUCON12に、id:tkzwtks id:yashigani_w と「デジタルトランスフォーメーションズ」というチームで出場してきました。最終スコアは4159で本選進出ならずという結果でした。
isucon.net
id:tkzwtks id:yashigani_w の2人は同じ会社で一緒に働いて長いんですが、同じチームで仕事したことはほぼなかったので、なかなか楽しい体験だったなと思います。問題も運営もすごく良かったので感謝です。
それはそれとして、本戦いけなかったのはだいぶ悔しい。なかなか向き合えなくて、この記事を1週間書けなかったのでした。なんとか7月中には書いたよ。
ふりかえり
正しさの追求の気持ちが足りないかも、というのを終わった後に会社の他のメンバーと話してて感じた。
プロダクションコードならこんなの絶対やらないでしょ、というところも意図があると考えて後回しにしがち。謎の採番を見ても放置したり、flock を温かい目で眺めたり。性能は悪くないかもしれないが、SQLite のままじゃ自分の土俵で戦えない。もっと理想に近づけていく、最強になる気持ちを取り戻したい。
- 作戦はそこまで間違ってなかった、と思う。状況は見えてたし、やってたところは外してない。
- 手の速さと正確さは課題
- インフラ領域だと、デプロイまでは「いつもの」のはずなのに2時間かけてる。メモリリークの原因切り分けられなかったのは敗北感が強い...。
- スコアキャッシュのとこの実装も遅かったし、もっとシャッと書けると手数増やせたなと。正しいことを素早くやろう。
- チームとしての雰囲気がよかった
- 15分スプリントで頻繁に見直し、毎回掛け声を上げる。うおお。
- 対面なら雰囲気は見えるので、中盤など多少インターバル長くても行ける気はする。
- 対面作業の強さを思い出した
- 任意のペア作業可能が瞬時にできるようなディスプレイ配置、顔が見えるので詰まってることもわかる。ホワイトボードで状況共有。
- チーム作業はリモートに比べて圧倒的に有利だなと改めて実感した。
自分の流れの振り返り
リポジトリはこちら。
github.com
- 15分スプリントを持ち込んだ。ふりかえりにも便利ですね スプリント会 · Issue #3 · tatsuru/isucon12-yosen · GitHub
- まずはインフラ担当として序盤の整備 インフラ作業スレ · Issue #7 · tatsuru/isucon12-yosen · GitHub
- 起動、計測、デプロイあたりの環境を整える。docker-compose だけどアプリしか使ってないのでそのまま放置。
- 昼の作戦会議
- ランキング改善のための余計なデータ削減。SQLite はそのまま使う。
- サーバー分散やら全体の作戦整理、時々ペアでバッグ
- 最終スコアをキャッシュして速くするってやつをやりかける
- 他が詰まってたので別ラインでキャッシュするコードを書いてた。最終的には出さなかった。
- 最後はメモリ詰まって落ちるやつを見てた