2014.9.27 13:38 追記
ブラウザでの表示崩れについて追記しました

--
2014.9.26 12:05 追記
予選登録は締め切りました

--
2014.9.8 13:00 公開

参加者

予選参加者 (以下参加者) はチームでの登録とし、チームは2人~3人での構成とする。

参加者は予選の第1日目、2日目のいずれかのみに参加することができる。

参加者は「一般枠」「学生枠」のいずれかに登録すること。

  • 「学生枠」参加メンバー全員が学生・生徒であること (年齢は問わない)
  • 「一般枠」学生枠以外の参加者

  • 学生枠の要件に該当する参加者でも、一般枠に登録することができる。


    参加登録

    参加者は、代表者1名が以下のページから行う。

    登録内容の確認メールは登録後しばらく経ってから送ります
    参加メンバーの変更、予選参加日程の変更は参加登録メールへの返信で受け付けます

    https://feedback.line.naver.jp/enquete/public/135-HOEPHwUi

    登録受け付けは 2014年9月26日 12:00 (JST) までとする。


    競技時間

  • 予選第1日 2014年9月27日 10:00~18:00 (JST)
  • 予選第2日 2014年9月28日 10:00~18:00 (JST)



  • 禁止事項

    以下の事項は特別に禁止する。
  • 他のチームへの妨害と主催者がみなす全ての行為



  • サーバ事項

    参加者は各自が用意した Amazon Web Services (以下AWS) アカウントを利用し、主催者が指定した Amazon Machine Image (以下AMI) から起動したインスタンスを1台利用する。

    使用するインスタンスタイプは m3.xlarge (EBS最適化なし) で、ルートボリュームは standard (Magnetic) とする。他のインスタンスタイプおよびボリュームタイプを使用した場合の結果は無効とする。

    参加者は 2014年9月29日 10:00 (JST) までに競技時間中に使用したインスタンスから AMI を作成し、AMI を主催者の AWS アカウントに共有すること。

    AWSの利用料は参加者の負担とする。
    Amazon Web Services様のご厚意により利用可能クーポンをご提供いただけることとなりました


    ソフトウェア事項

    コンテストにあたり、参加者は与えられたソフトウェア、もしくは自分で競技時間内に実装したソフトウェアを用いる。

    高速化対象のソフトウェアとして主催者から Perl, Ruby, Python, PHP, Node.js, Go によるWebアプリケーションが与えられる。ただし各々の性能が一致することを主催者は保証しない。どれをベースに用いてもよいし、独自で実装したものを用いてもよい。

    競技における高速化対象のアプリケーションとして与えられたアプリケーションから、以下の機能は変更しないこと。

  • アクセス先のURI (IPアドレスおよびパス(複数)
  • レスポンス(HTML)のDOM構造
  • ブラウザで表示した際の見た目(問題ない範囲で)
  • 画像類の内容
  • JavaScript/CSSの実行される結果

  • 追記: なお、参考実装の PHP を利用した場合、AMI 中の初期設定では CSS や画像が反映されず表示崩れが起きてしまっています。AMI 提出時の利用言語に "PHP" と回答している場合は、この点について不問にします。

    各サーバにおけるソフトウェアの入れ替え、設定の変更、アプリケーションコードの変更および入れ替えなどは一切禁止しない。

    起動したインスタンス以外の外部リソースを利用する行為 (他のインスタンスに処理を委譲するなど) は禁止する。

    許可される事項には、例として以下のような作業が含まれる。
  • DBスキーマの変更やインデックスの作成・削除
  • キャッシュ機構の追加、jobqueue機構の追加による遅延書き込み
  • 他の言語による再実装

  • ただしコンテスト進行用のメンテナンスコマンドが正常に動作するよう互換性を保つこと。 各サーバの設定およびデータ構造は任意のタイミングでのサーバ再起動に耐えること。 サーバ再起動後にすべてのアプリケーションコードが正常動作する状態を維持すること。ベンチマーク実行時にアプリケーションに書き込まれたデータは、再起動後にも取得できること。


    採点

    採点は採点条件(後述)をクリアした参加者の間で、性能値(後述)の高さを競うものとする。

    予選用に提供された AMI にインストールされている性能値計測用ツール(以下計測ツール) を参加者が任意のタイミングで実行することで、性能値が計測され、主催者の用意した管理サーバに送信される。

    採点条件として、以下の各チェックの検査を通過するものとする。

  • 負荷走行中、POSTしたデータ(コメント)が、POSTへのHTTPレスポンスを返してから1秒以内に関連するURI GETのレスポンスデータに反映されていること
  • レスポンスHTMLのDOM構造が変化していないこと
  • ブラウザから対象アプリケーションにアクセスした結果、ページ上の表示および各種動作が正常であること


  • 性能値として、以下の指標を用いる。
  • 計測ツールの実行時間は1分間
  • 計測時間内の HTTP GET/POST リクエストの成功数をベースにする。ただしすべてのリクエスト成功について同一の配点とは限らない
  • エラー(ステータスコードが200および300番台以外のもの、規定の時間内に計測ツールがレスポンスを得られなかったもの) の回数をもとにベースのスコアから減点される



  • 本選出場チームの選出

    競技時間中に計測され、管理サーバに最後に登録された計測値によって、本選出場チームが選出される。

    一般枠
  • 予選第1日の上位5チーム、予選第2日の上位5チームが本選進出
  • それ以外のチームについては、予選両日を通して上位10チームが本選進出

  • 学生枠
  • 予選両日を通して上位 5チームが本選進出
  • ただし、競技終了後に参加者から提出された AMI を元に主催者が実行した環境において、競技時間中に計測された性能値に近い値が再現できないチームは失格とすることがある。


    情報の管理について

    参加者は、予選第2日の競技終了時刻までの間、予選出題内容、計測ツールの計測方法について知り得た情報を自チーム以外の参加者に共有してはならない。ただし主催者が公開している情報を除く。


    質問などは Twitter @941 までお願いします。DMでのやりとりがよければフォローいたしますのでMentionを飛ばしてください。