petitviolet_blog

@petitviolet blog

ISUCON8予選に参加して敗退した #isucon

2018/09/15(土)に開催されたisucon8予選に参加した。

isucon.net

去年と同じメンバー3人で出た。

petitviolet.hatenablog.com

結果はタイトル通り敗退で、再起動試験でどんなスコアだったかはわからないが、自分たちで確認できたスコアは26,000点台だったのでまあ無理だったでしょうという感じ。

やったこと

Golangを選択した。
最近まともに書いてないので文法も怪しいレベルだったけど他の言語よりはやりやすいかと思っての選択。

スコアを伸ばせたのは

  • N+1解決
  • DBにindexはる

っていうありきたりなやつ。
あと小ネタとしてh2oのログをalpで食えるようなLTSVにしたり。

N+1解決、getEventsのところ直したんだけど、何箇所か直したあたりでベンチマークがfailしだしてそっから頭打ちになった。
爆速になるやろ!って思ってベンチ回したらfailしかしなくなってバグfixにめっちゃ時間かかってしまったのが敗因な気がしている。
結局、がっつりコード書いて改善したやつをコミット出来なかったのは非常に悔しい。 ここは普段からGo書いてないつけが回ってきた感じ。

あと3台構成を全くいかせず、1台のWeb + DBサーバでさばいていたのでそこを分散できればよかったんだろうな、と思いつつ帯域とかベンチマークのバリデーション厳しいのもあって正直どうやればいい感じに出来たか最高のアイデアは出てない。
MySQLをAerospikeクラスタ組んでリプレイスするか〜とか言ってたけどやってない。 この辺なにか一つ改善が形になればスコアはもうちょい上がっただろうなという感じ。

そしてMySQLがどうやって起動されてるかわからなかった...。
systemctlでもないし何だったんだろうか。未だにわかってない。MySQL自前で入れ直して対応してたんだけどみんなどうしたんだ。

あとこれはただの感想で、Golang、せっかくコンパイルするのにランタイムエラー置きまくるので厳しい気持ちになった。さくっとコンパイル通るのは気軽でいいんだけどメモリアクセス違反とかくらい見つけて欲しいなって思った。
普段Scalaばっかり使っててコンパイラに甘やかされてるのでかなり大変だった。

去年からの差分

事前準備全くしなくて去年ぶりのisuconって感じだったけど、同じメンバーだったのもあって導入はわりとすんなり。 去年の反省を生かして役割分担したり時間決めて現状整理する時間取ったりしたのは良かった。 特に先輩がdatadogいれて監視できるようになったのはめっちゃ良かった。
去年はnetdata入れてモニタリングしてたけど慣れてないのもあってイマイチ使いこなせなかったし。
あとはシステムレイヤーでの大きな改善が去年も出来なかったし今年も出来なかった。
キャッシュレイヤいれるとかDB変えるとか。
改善が小粒になってしまってるので来年参加するならもうちょっと攻めたい。

最後に

今年は開始時間遅れなかったしほぼ困ることが何もなくて運営の方々最高だった。
一瞬ポータルが重かったくらい。

非常に楽しかったです、ありがとうございました!

Scala関西サミット2018に採択された

Scala関西サミット2018に出したCfPが幸運にも採択された。

2018.scala-kansai.org

Scala関西は2017に続いて2年連続参加できるので嬉しい限り。

petitviolet.hatenablog.com

発表のタイトルは「実践GraphQL on Scala」で45分枠。
しっかり準備して業務でやっているGraphQL周りの知見を全部出したい。

ちなみにGraphQLについては以前GraphQLナイトというイベントで発表している。

petitviolet.hatenablog.com

が、Scalaの話はあまり出来てなかったので、Scala関西では「Scala関西」に相応しいScalaっぽい話が出来たらなと思っている。
がんばるぞ!

GraphQLナイトで発表してきた #gqnight

2018/06/28にGraphQLナイトというイベントに参加して「GraphQL on Scala」というタイトルでLTしてきました。

connpass.com

発表資料はこちら。

speakerdeck.com

業務でGraphQLなAPIの開發を最近やっていて色々とネタが溜まってきていてどこか勉強会で話せないかな〜って思っていたところお声がけいただいたのが経緯です。
id:yuku_t ありがとうございました!

とはいったもののイベントのテーマがGraphQだという時にScalaをネタに話すのはわりと難しく、導入事例っぽいのとフレームワークの紹介に留まってしまいましたが、Twitterでの反応を見る限り、Scalaでも結構やれそうだというのが伝わったみたいなので狙いが成功してよかったです。

他の方の発表や懇親会での話とかでもやはりRubyかNodeでGraphQLやってる人が大勢っぽかったですが、GraphQLについて色々と参考になる話が聞けて楽しかったです。

運営のみなさま、会場提供のfreeeさん、ありがとうございました!