このゴール、というよりはゴールセレブレーションのことははっきり覚えている。 当時珍しくテレビで放送されていたので(今みたいに全試合生放送されていたわけではなく、見に行かなかった試合のゴールはダイジェストで見るしかなかった)かじり付きで観ていた。 たぶん家で夕食を食べる直前くらいだったと思う。「もう夕食だぞ」と言われたけど、食卓につくとテレビの位置的に試合が観られなくなってしまうので、生返事しながら観ていたと思う。

ぼんやりと覚えているのは、このペットボトルの水が「実は名古屋の選手用の水ではない」というエピソードで、たぶん翌日の新聞に書いてあったか、その日の実況が言っていたような記憶がある。 しかしこれが25年前なの衝撃的だな・・・あとピクシーをはじめこの試合に出ている選手が例えば監督として何年もやってたりして歴史を感じる。

普通の日記

4月に入って以降、週末はかなりゆっくり過ごせている。

例年だったらサッカーシーズン真っ只中で、土日のどちらかは家でサッカー見る、もしくは遠征してるとかのはずだけど、今はサッカーがない。 3月までは仕事がはちゃめちゃに忙しくて、これが終わったらどこか旅行でも行くんやと思ってたけどそれもできずで、ずっと家にこもっている。

3月まで全然休みを取っていなかったこともあり、有給とか少しづつ使うとでめちゃくちゃ時間が余るので、積んでた本をちょっと読んでみるとか、部屋の片付けするとか、そういうことに時間が使えている。 これはこれでいい。

雨が降ってなければ一日一度は散歩することにしていて、家の近所をぶらぶらしてる。 気になっていた店がどんどんテイクアウト始めていて、正直大変そうだなと思うけど、個人としては気軽に試せて嬉しい、という気持ちもある。 少しづつ開拓したい。

isucon9の予選に出て敗退した

isucon9の予選に参加して、今年も予選敗退してしまったのでその記録を残しておく。今年で4回目で、id:hitode909 さん、id:side_tanaさんと「ミッシングマグネティックストレージ」という名前のチームで出た。最高スコアは6720イスコインで、最終スコアは5120イスコインだった

振り返ってみたけど自分はほとんど何もやってない。もう少し手を動かす必要があった。

準備

締め切り1週間くらい前にチームを組んで、予選1週間くらい前に練習をした。レギュレーションを読んだり、言語どうしましょうねとか、あと最初にこういうことやりましょうとかそういうことを話して、isucon8の予選問題で軽く試したりした。ここ数年はAzureとかConoHaとか使われているものの、だいたい「サーバにSSHでログインしてあとはいい感じにする」みたいなムーブになってしまい、出題環境となるクラウドサービスを特に触らずに終わってしまう。今年はなにか触ってみたいなと思って、どうせNginxのログとか集めたくなるのでLogServiceというのを使ってみることにした。それ以外は「デプロイはrsyncでやりましょう」「sshの鍵を事前に集めておきましょう」という話をして、Alibabaのテスト用インスタンス無事立てられましたね〜とかをやった。

前日は明日最初にだれが何をやるのかというのを決めたり、RAMユーザーをチームメンバー分発行したり、あとはテンション上がりそうなご飯はどこで注文しましょうかとか話して解散した。前日は飲酒禁止ですとか言っていたのに、その後うっかりビールを飲んでしまった。

LogService

なんとなくLogServiceのドキュメント眺めてたら便利そうだったので使った。この辺りにNginxのログを集めて分析する方法が書いてあったので導入時に困ることもなかった。

jp.alibabacloud.com

「よく使う集計クエリ」を保存しておけるのがよかった。ベンチマーク走らせたあとに各自がそれぞれの画面でログの集計結果を眺めたり、好きなクエリで集計できそうだなと思ったので導入した。もちろん、こういうのはkibanaとか使ってもいいのだと思う。とにかく今年はいつもと違うことをやってみたかった。 f:id:tkzwtks:20190909225629p:plain

当日

当日どういうことをしたかはhitode909さんのブログにある通り。

blog.sushi.money

今年はアプリケーションの改善に集中したい、ということを練習時から話していて、実際みんなでそういう動きをできたのは良かった。hitode909さんの細かい修正は少しづつスコアを上昇させたし、side_tanaさんが導入したCloud Traceはアプリケーションのボトルネックを探すにはかなり役に立った。

tana.hatenablog.com

最初にも書いたけど、僕はあまり手を動かすことができずに、最初やる予定だったタスクをやったあとは、このサービスはどういうアプリケーションか、みたいなことをずっと考えたり、ペアプロに参加したりしていた。/buy のエンドポイントが遅いものの、ここを改善しないとポイントが上がらないと考えていたので、どう改善するかということを考えていたけど、結局解決案を見つけられなかった。サービスで実際にユーザーがどういう動きをするのだろうかというモデルをうまく作れたらもう少し改善できたのかもしれない。普段から触れているアプリケーションなら「この画面のあとはここに遷移するはずだから、この処理はあとでもいい」みたいな解決案は出せるかもしれない。しかしisuconみたいに初めて触れるアプリケーションでそういうことをやるのは難しい、というのは改めて実感した。こういうのが得意な人もいるのかもしれない。次回は(ベンチマーカーが模している)ユーザーがどういう動きをしているか、というのを最初に考えるといいかもしれない。

/buyにこだわりすぎたのもよくなかった。「/loginが遅い」という話はしていたものの、今回のスコア計算は「売ったイスの総額」になるということだったので、とにかく購入エンドポイントを解決するのが先決だと思っていた。が、/loginを素早く捌けるようになればより多くのユーザーが購入までたどり着けるようになるはずで、もしかしたらスコアを上げることができたかもしれない。ここを改善するための案はそこそこ早く話し合えたものの、タイムアップまでの時間があまりなくて試すこともできなかった。

アプリケーションの改善にこだわりすぎて、結局サーバーを1台しか使えなかったのも反省点だと思う。まずはアプリケーションのボトルネックをある程度解消しないとホストは増やせないと思っていたが、最終的には増やしたいはずだったので、最初から3台でやればよかったのかもしれない。同様にキャンペーンレベルを最初からMAXでやればよかったと思う(キャンペーンレベルは一度MAXにしてみたが、その結果スコアががくんと下がったのでその後日和ってしまったのだった)。あと最初に書いたけど、やっぱりもう少し手を動かす必要があった...

反省点はあるものの、今年は「どういうアプリケーションか考えながら改善したい」というつもりだったので、一貫してそういう話ができたのは満足感がある。問題のボリュームは多いなと思ったけど、考えることもたくさんあって楽しかった。あとisuconは普段の仕事と違う人とチームを組めるのがよい。普段一緒に仕事していないメンバーと課題に取り組むのは新鮮な感じがして楽しかった。出題者、運営の皆様お疲れさまでした。来年こそは本戦に出たいと思いつつ、しばらくは反省の日々を過ごします...

「天気の子」観た

何だかんだ楽しんで観たとは思うけど、「自分の身の周りに存在するもの」がちょこちょこ出てきて現実に引き戻されてしまうのが辛かった。ローソンとか。たまに出てくるくらいなら良いけど、自分の感覚では多すぎた。

 

そういえば「君の名は。」観た後に新開誠作品ちゃんと観るかって考えてたけど結局観てない。今回も同じように観るかって考えてるけど、結局また観ない気がするな...