Fusic 平田です。
あーだこーだ言ったりやったりしている間に当日を迎えてしまいましたので、予選に参加してきました。
今回はヌーラボさんのお二人(@dragon3さん, @tksmdさん)と組ませてもらい、チーム名はFusic x nulab = Fulabに決定。
ちなみに最終スコアは
で、もう一歩のところだったのかなー1 と思われます。
※ 2013/10/09 20:00追記: 繰り上がり当選してました!
だいたい時系列にやったことを並べると、
前々日にSkypeでざっくり作戦会議
・まあPerlかなーとかvarnish使うかなーとか
・台風で予定狂いそうだったので3人で祈る
当日朝
・無事3人揃って参加可能に
・ヌーラボさんにお邪魔して、環境準備とか
・TV会議システムで京都のtksmdさんとやり取り
・超スムーズでうらやましくなる
・backlogのプロジェクト立てたり、公開鍵渡したり
・他にチャットはtypetalk、メモはEtherPad
・とか書いてたら普通にヌーラボさんのプロダクツ紹介になっていたことに自分で驚いた
開始
・とりあえず動かして初期スコア確認(Perlで800くらいだった)
・皆でいろいろ覗く
・とりあえずis_private邪魔だなーとかmy.cnfないなーとかそういう話
11:00ごろ作戦会議
・ちゃっちゃとvarnish立てよう
・DBのインデックスとかクエリとか見直さないとね
・なんとなくフロント/アプリ/DBで役割分担
~13:00くらいまで
・さくっと2000くらいまでは行って、TOP5くらいには入っていそうなのを確認
・その後も見直しつつベンチ回す
・やっぱMySQL重いしCPU食ってるのがなかなか落ち着かない
・このへんでmarkdownの生成周りをどうにか対処しないとなーという話に
・is_private=0が邪魔なので、memos_publicテーブル作って、SQLのWHERE句に出てこないよう改修開始
~16:00くらいまで
・じりじり順位落としてツライ
・memcacheに乗せられるものを徐々に乗せる方向に
・並行してmarkdownの処理もキャッシュ作って乗せたりする方向に対応
・workloadを上げてみて、5くらいで一番スコア出たのを確認
・いくつか罠を見つけたので、引き続き罠探したり
・varnish側でgzip切ったのも多分この辺
~18:00
・MySQLの設定変えたらdiskfullになるとか
・markdown周りのキャッシュが効きだしてスコアがまた伸び始める
・他もいろいろmemcacheに乗せまくる
・どうもvarnishのキャッシュが乗せきれてないのを対処再開するも時間切れ
といった感じでした。
他のチームのやったことを見る限り、アプローチはだいたい間違ってなかったのかなーと。
いくつか効果出そうなところで手をつけきれなかったりとか、フロントでうまくさばけていれば2 もっとスコア伸ばせたなーとか、その辺でいくらかずつ足りなかったようです。
開始から終了まで、ずっと楽しかったです。
ぜひ次回があればまた参加したいですね。
主催の皆様、本当にありがとうございました。ぺこりぺこり。