pixiv insideは移転しました! ≫ https://inside.pixiv.blog/

社内ISUCONを公開したら広く使われた話

ISUCON6の出題者の1人の@catatsuyです。

ISUCON6予選が開催されましたが、結果はどうでしょうか。期待通りの結果になりましたか?

ところで以前に紹介したように、我々が開催した社内ISUCONの問題はソースコード・AMIともに公開しています。

inside.pixiv.net

github.com

各社のISUCONを愛する人達が、社内ISUCONの問題を作成して開催したという話は聞きますが、問題が公開されているケースはあまり聞きません。今回は社内ISUCONを公開し、簡単に試せるようにしたことでどのような反応が得られたのか紹介します。

事例

我々が見つけた事例を紹介します。もし漏れがあればtwitterなどで教えていただければ幸いです。

ISUCON参加者で練習に使ってくれた事例も紹介します。ISUCONは練習しないと勝てない大会なので、本気で勝ちに行ってるチームは過去のISUCON問題で練習します。とはいえ過去問にも限りがありますし、過去に出場したことのある人は既に何度も練習して解いています。なので、きちんと遊べるようにオープンにした弊社の社内ISUCONは、たいへん重宝されているようです。

ポータルサイト

我々が社内ISUCON当日に使用したポータルサイトのソースコードも公開されています。しかし多くのチームが参加しても大丈夫なようにsidekiqを使用したジョブキューの仕組みを使って、ベンチマーカーを動かすサーバーを分散する機能が実装されています。このように複雑な仕組みになっているので、作った我々以外の人が動かすのは難しいと考えています。

そこでポータルサイトを独自に用意された人もいるので紹介します。

他言語実装

我々で用意した言語実装はRuby,PHP,Go,Node.jsに加えて、KLabさんが用意してくれたPythonがあります。

isucon.net

ISUCON6の参考実装はRuby,PHP,Go,Perl,Nodejs,Python,Scalaでした。なので現在PerlとScalaが足りない状況です。私も社内ISUCONのRuby実装をGo実装に移植する作業を行いましたが、移植作業を行うことで各言語の仕様について予想以上に調べる必要があることが分かります。その知見はISUCONを戦う上でも使えるものになるかもしれません。

まだ実装されていない言語の実装を用意してみませんか?

最後に

社内ISUCONを公開することで、ここまでの反応を得られました。各社の社内ISUCONも公開されてみてはいかがでしょうか。私もぜひ解いてみたいと思っています。

我々は引き続きISUCON6本選の準備を進めています。皆様お楽しみに!