ISUCON公式Blog

ISUCONとはさくらインターネット株式会社が運営窓口となって開催している、お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトルです

ISUCONの過去問に
チャレンジするための
シンプルな環境構築
商標「ISUCON」利用の
ガイドラインはこちら

ISUCON7本選問題の解説と攻略

ISUCON7本選の出題を担当した @methane です。参加者の皆様、お疲れ様でした。

すでに Twitter でアナウンスされているとおり、本選の問題を Github で公開しています。
▼isucon/isucon7-final

すでに一週間以上経ってしまいましたが、この記事では本選の問題設計や攻略ポイントについて解説していきます。

お題について

予選では、夏期講習参加者や過去問を練習してきてくれた学生チームにいじわるな問題設計にならないようにと考えていました。(残念ながら失敗していた部分も多かったですが)

一方本選では、そういった気遣いを一切無視して自分たちの得意な分野の問題を出そうということで、MOゲームをお題に選びました。

「協力してレイドボスを殴るゲームにしようか。」
「ボスのヒットポイントは無限にして総与ダメージをスコアにできないかな。」
「攻撃スキル、バフ/デバフスキルみたいなのはコード量を大幅に増やす割にISUCONとして面白くないから、もっとシンプルなルールが良いよね」
「あれ、クッキークリッカーってレイドボスになるんじゃない!?」
という流れで Chair Constructor Online にすることになりました。

自分たちの得意分野をやるということで、WebSocketを使ってマルチプレイ対応することまでは考えていましたが、ボトルネックをどう作り込むかなどはアイデア時点では考えていませんでした。

アイデア段階では存在しなかったタイムスタンプや未来に反映されるコマンドを使った同期といった難しい部分は、予選期間中にお題のゲームのプロトタイプを作ってくれていた @hasi_t が作り込んでくれました。

オンメモリ戦略と分散構成

ISUCON を攻略するテクニックの1つとしてオンメモリ戦略があります。この名称は自然発生したものできちんとした定義は無いものの、私の理解では次のような方法です。

  • オンメモリ戦略: RDB上のデータを正としてプロセスメモリ上のデータをキャッシュとしてのみ利用するのではなく、プロセスメモリ上のデータを正として、RDBは永続化のためだけに使う(もしくはRDBを捨てて別の永続化手段を取る)


  • ISUCON参加者の中にはオンメモリ戦略を嫌う方もいます。
    その理由は次の2点が大きいと思います。
  • RDB 以外の永続化手段は実際のWebの現場では安全性のために利用しにくいので、ISUCONでしか使えない戦略である(現場でも活かせる方法で勝てるようにしたい)
  • Read more...

    ISUCON7 本選の利用言語比率

    ISUCON7 本選の利用言語比率を公開します。
    ISUCON7 本選は30チームの参加があり、有効回答数は30チームでした。

    利用言語比率

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

    Go   19組 63.3%
    Ruby   7組 23.3%
    Node.js  4組 13.3%
    Python  2組 6.7%
    Perl    0組 0.0%
    PHP   0組 0.0%

    参考として優勝チーム「MSA」の利用言語はGo、学生1位チーム「ML」の利用言語はPythonでした。


    ご参加いただいた皆さんの感想などはこちらにまとめています。
    ▼ISUCON7 本選 関連エントリまとめ : ISUCON公式Blog

    ISUCON7 本選 関連エントリまとめ

    [2017.12/7 13:00 更新]
    ISUCON7 本選にご参加いただいた皆さん、ありがとうございました!
    こちらでは感想エントリや何をしたかに言及されたエントリをまとめていきます。見つけた順ですが後で何かしらのルールで並び替えます。もしここに載っていないものがある場合は ISUCON7 本選のブログ書いたよ!フォームで教えていただけると助かります。重複はこちらでチェックしますのでドシドシお願いします。

    ブログを書くまでがISUCONです!

    本選のTweetはこちらでまとめています
    ▼ISUCON7 本選 Tweet まとめ#isucon - Togetter

    ・ISUCON7優勝しました [MSA] - mizkeiのブログ
    ・ISUCON7で優勝しました - ken39arg’s blog
    ・ISUCON 7 で優勝してきました | ジェットゾウ
    ・ISUCON 7 本戦出場してきました(学生枠 2 位 / 全体 10 位でした) - 右上➚
    Read more...

    ↑このページのトップヘ