ISUCON公式Blog

WINNER'S PRIZE \1,000,000



   

ISUCON6予選のメイン出題担当のSongmuです。今回はISUCON6の予選問題がどういう問題だったのか、振り返ってみましょう!

アプリケーションについて

はてなキーワード、
(?:匿名)?
ダイアリーを模したブログとWikiの中間の様なアプリケーションです。キーワード自動リンク機能がついています。また、はてなスターのようなお気に入りを付けられる様な機能もついていました。記事の投稿時にはスパムチェックをおこなっており、一部の禁止ワードや、アダルトサイトへのリンクが含まれている場合には投稿できないようになっています。

構成

初期状態で以下の3種類のアプリケーションが起動しており、それぞれが通信を行なっていました。
  • isuda (はてなキーワード・はてな
    (?:匿名)?
    ダイアリーを模したアプリケーション)
  • isutar (はてなスターを模したサブアプリケーション)
  • isupam (スパムチェッカー/Go製のバイナリのみ提供)

  • ISUCONの歴史の中で、最初から複数のプロセスが起動している問題は初めてです。お気づきかと思いますが、今回の問題のテーマは「マイクロサービスアンチパターン」でした。

    また、僕のISUCON参加哲学として「結局いつもの仕事と同じことしかできないし、それが一番うまくいく」というのがあるのですが、それは出題側も一緒なのではないかということで、問題もかなり「はてなっぽい」問題になっています。

    「はてなっぽい」問題にしてしまうと、はてな社員が有利なのでは?と思う向きもあるかもしれませんが、キーワードリンクなどは、はてな社内でもロストテクノロジーと化しているため、問題なかろうという判断でした。実際、はてな社員のチームは何チームか予選に参加していたのですが、決勝進出できたチームはありませんでした…。個人的に非常に残念ですが、それだけ今回の激戦ぶりが伺えます。

    閑話休題。

    isudaとisutarは相互に依存しあっているというアンチパターンで、isupamはソースコードが紛失してしまっているという設定でした。

    Read more...

    ISUCON6の予選問題作成メイン担当のSongmuです。皆さん予選はいかがでしたか?至らぬ点もあり申し訳ない部分もありましたが、楽しんでいただけたようであれば嬉しいです。

    さて、遅くなりましたがISUCON6予選に使用した参照実装、ベンチマーカー、その他諸々を含むリポジトリを、このエントリと共に公開します。

    https://github.com/isucon/isucon6-qualify

    謝辞

    問題作成にあたり、多くの人に協力いただきました。以下に役割分担を書き出してみると非常に豪華な面々です。これらの方々の協力なしには予選は開催できなかったでしょう(本当に!)。ありがとうございました。

  • 問題アイデア出し: Songmu/motemen/wtatsuru
  • コンセプト実装: motemen
  • 初期実装: Songmu
  • 参加者用ポータル作成: motemen
  • ベンチマーカー及びワーカー: Songmu
  • 予行演習解答: edvakf/catatsuy/walf443/st-cyrill
  • Azureアドバイザリ: myfinder/(matsuu)
  • インフラ及びプロビジョニング整備: wtatsuru/y_uuki
  • 言語移植
    • Go: y_uuki
    • Ruby: aereal
    • Scala: tarao
    • Python/Node: walf443
    • PHP: st-cyrill
  • 予選当日のシステム運用・監視: wtatsuru/motemen/Songmu/myfinder
  • その他予選当日サポート: edvakf/catatsuy/walf443/st-cyrill/y_uuki
  • 採点: wtatsuru/Songmu
  • アナウンス全般: 941

  • Read more...

    追記
    本選出場の比率が間違っていたため修正いたしました
    --
    オンライン予選の利用言語比率を公開します。昨年はこちら

    オンライン予選は317チームの参加があり、予選についてのアンケートにて有効回答数 213チームとなりました。

    オンライン予選 利用言語比率

    利用率の全体ランキングは以下の通りです。利用言語は自由記入で複数入力したチームもありますので合計が回答チーム数を超えます。

    Ruby  31.9% 68組
    Go   19.2% 41組
    PHP   17.8% 38組
    Perl    15.5% 33組
    Python  14.1% 30組
    Node.js  5.2%  11組
    C++    1.9%  4組
    Scala    0.9% 2組
    Java    0.5% 1組


    本選出場が決まった26チームに限定すると以下となります。
    (複数言語を利用したチームがあったため26よりも合計が多くなっています)

    Go    42.3%  11組
    Ruby   26.9%  7組
    Perl   19.2%  5組
    PHP   7.7%  2組
    無回答  7.7%  2組
    C++   3.8%  1組


    ご参加いただいた皆さんの感想などはこちらにまとめています。
    ISUCON6 オンライン予選 関連エントリまとめ
    Read more...

    ↑このページのトップヘ