2021.08.22 14:40 競技環境の操作・削除について追記しました
-------
ISUCON11 本選出場者を発表いたします。
今回のオンライン予選は598チーム、1421名の方にご参加いただきました。
本選への出場枠についておさらいです。
ISUCON11 予選レギュレーション, ISUCON11 予選当日マニュアル において、オンラインで開催される本選へ参加する30チームの選出条件は以下となっています。
・一般枠 (25チーム):最終スコアにおける上位25チーム
・学生枠 (5チーム):学生チームの中で、最終スコアにおける上位5チーム
それでは予選結果とあわせて、ISUCON11 本選出場30チームを発表いたします。
・shallowverse
・都営三田線東急目黒線直通急行日吉行
・NaruseJun
・fujiwara組
・Oops!
・FetchDecodeExecWrite
・百万円ドリブン
・ウー馬場ーイー2
・チーム中目黒乗り過ごし
・カレーおじさん
・negainoido
・焼肉ジャンボチキン
・111111
・ふんばり温泉チーム
・第6西東京市
・今年こそは出場
・pizza cat
・undefined
・wakaranduck
・ふらんふらん(学生)
・aqua Fruits(学生)
・四年ぶり二度目
・SNE
・チーム五年目
・俺達の戦いはこれまでだ
・手が3本あるテディーベア
・kotamanegi
・komorebi
・快適PandApex
・雑談係
以下のチームは最終スコアが上位25チームに含まれていましたが、主催者による追試に失敗したため失格となりました。
・morupoppo: ISUの画像が表示されない (500)
・isucon_friends: conditionの絞り込みで info,warning を指定しても warning しか表示されない
・さばかんちゃーはんかれー: ISUの画像が表示されない (404)
最終スコアの算出は事前の告知とは異なりますが、 2バージョンのベンチマーカーを用いて高い方のスコアを最終スコアとして算出しています。この背景とベンチマーカーの差分についてお知らせします。
まず、競技中に質問があったように、下記のエラーによる減点が発生していました。これは質問の回答にあるように、後述するベンチマーカーの不具合によるものです。また、競技時間中の修正は断念しました。
競技時間中に修正はできませんでしたが、ベンチマーカー側に緩和策を用意しました。ただし、これはスコアの変動が予想されたため、緩和策が入ったバージョン (新ベンチ) と競技時間中に利用したバージョン (旧ベンチ) を最終スコアの算出で利用することにしました。
したがって、最終スコアの算出では、再起動後に旧ベンチと新ベンチ 2 種類で負荷走行を行い、いずれか高い方の点数を採用しています。
主催者で確認した結果、下記を競技時間中に返答したように、サーバー側からの GOAWAY フレームを受け取った場合のハンドリングが足りておらず、エラー扱いになってしまうベンチマーカーの不具合であることが分かりました。
競技時間中の修正を試みていましたが、Go の net/http で当該エラーをハンドリングするのが容易ではなく、リスクが高いと判断しました。
緩和策として、ベンチマーカーから HTTP リクエストを行う際 HTTP/2 コネクションの共有を抑えることが提案されました。ただしこれはベンチマーカーからのコネクションの数など性質が変わることによりスコアの変動が見込まれたため、競技時間中にそれを反映させることは (競技時間が残り少なかったこともあり) これもリスクが高いと判断しました。
そのため、上記に示したように 2 バージョンのベンチマーカーを利用して最終スコアの算出を行いました。
以上です、ISUCON11 本選出場チームは30チームとなり、本選は9月18日(土) オンラインにて行います。
予選と本選でチームメンバーの交代や追加は出来ませんのでご注意ください。本選出場となった選手の方へはDiscordにてご連絡いたしますので、お待ちください。
オンライン予選にご参加いただいた皆さん、まことにありがとうございました。全チームのスコア(参考値)は後日公開予定です。
2021.08.22 14:40 追記
現時点をもって競技環境の操作や作業の再開、また削除していただいて構いません。競技環境の削除は、各チームで行う必要があります。削除を行わなかったために発生した不利益について、主催者は一切の責任を負いません。
-------
ISUCON11 本選出場者を発表いたします。
今回のオンライン予選は598チーム、1421名の方にご参加いただきました。
本選への出場枠についておさらいです。
ISUCON11 予選レギュレーション, ISUCON11 予選当日マニュアル において、オンラインで開催される本選へ参加する30チームの選出条件は以下となっています。
・一般枠 (25チーム):最終スコアにおける上位25チーム
・学生枠 (5チーム):学生チームの中で、最終スコアにおける上位5チーム
それでは予選結果とあわせて、ISUCON11 本選出場30チームを発表いたします。
一般枠: 上位25チーム
・shallowverse
・都営三田線東急目黒線直通急行日吉行
・NaruseJun
・fujiwara組
・Oops!
・FetchDecodeExecWrite
・百万円ドリブン
・ウー馬場ーイー2
・チーム中目黒乗り過ごし
・カレーおじさん
・negainoido
・焼肉ジャンボチキン
・111111
・ふんばり温泉チーム
・第6西東京市
・今年こそは出場
・pizza cat
・undefined
・wakaranduck
・ふらんふらん(学生)
・aqua Fruits(学生)
・四年ぶり二度目
・SNE
・チーム五年目
・俺達の戦いはこれまでだ
学生枠: 上位25チームを除いた学生上位5チーム
・手が3本あるテディーベア
・kotamanegi
・komorebi
・快適PandApex
・雑談係
失格となったチーム
以下のチームは最終スコアが上位25チームに含まれていましたが、主催者による追試に失敗したため失格となりました。
・morupoppo: ISUの画像が表示されない (500)
・isucon_friends: conditionの絞り込みで info,warning を指定しても warning しか表示されない
・さばかんちゃーはんかれー: ISUの画像が表示されない (404)
最終スコアの算出について
最終スコアの算出は事前の告知とは異なりますが、 2バージョンのベンチマーカーを用いて高い方のスコアを最終スコアとして算出しています。この背景とベンチマーカーの差分についてお知らせします。
まず、競技中に質問があったように、下記のエラーによる減点が発生していました。これは質問の回答にあるように、後述するベンチマーカーの不具合によるものです。また、競技時間中の修正は断念しました。
http2: server sent GOAWAY and closed the connection; LastStreamID=1999, ErrCode=NO_ERROR
http2: client connection force closed via ClientConn.Close
競技時間中に修正はできませんでしたが、ベンチマーカー側に緩和策を用意しました。ただし、これはスコアの変動が予想されたため、緩和策が入ったバージョン (新ベンチ) と競技時間中に利用したバージョン (旧ベンチ) を最終スコアの算出で利用することにしました。
したがって、最終スコアの算出では、再起動後に旧ベンチと新ベンチ 2 種類で負荷走行を行い、いずれか高い方の点数を採用しています。
不具合について
主催者で確認した結果、下記を競技時間中に返答したように、サーバー側からの GOAWAY フレームを受け取った場合のハンドリングが足りておらず、エラー扱いになってしまうベンチマーカーの不具合であることが分かりました。
この GOAWAY フレームはサーバーが HTTP/2 コネクションを graceful に切断したいことを示すために送信するもので、本来はクライアント側のリトライを期待したものです。クライアントであるベンチマーカー側の挙動を確認した結果、これがエラーとして取り扱われるため、ご指摘の通り不具合となります。
当該 GOAWAY フレームの送信を極力回避することで workaround できる可能性があります。具体的には、サーバー側で設定されている 1 コネクションあたりの最大リクエスト数などが影響しているケースが考えられ、その設定値を緩和することで回避を期待できます。
競技時間中の修正を試みていましたが、Go の net/http で当該エラーをハンドリングするのが容易ではなく、リスクが高いと判断しました。
緩和策として、ベンチマーカーから HTTP リクエストを行う際 HTTP/2 コネクションの共有を抑えることが提案されました。ただしこれはベンチマーカーからのコネクションの数など性質が変わることによりスコアの変動が見込まれたため、競技時間中にそれを反映させることは (競技時間が残り少なかったこともあり) これもリスクが高いと判断しました。
そのため、上記に示したように 2 バージョンのベンチマーカーを利用して最終スコアの算出を行いました。
まとめ
以上です、ISUCON11 本選出場チームは30チームとなり、本選は9月18日(土) オンラインにて行います。
予選と本選でチームメンバーの交代や追加は出来ませんのでご注意ください。本選出場となった選手の方へはDiscordにてご連絡いたしますので、お待ちください。
オンライン予選にご参加いただいた皆さん、まことにありがとうございました。全チームのスコア(参考値)は後日公開予定です。
2021.08.22 14:40 追記
現時点をもって競技環境の操作や作業の再開、また削除していただいて構いません。競技環境の削除は、各チームで行う必要があります。削除を行わなかったために発生した不利益について、主催者は一切の責任を負いません。