(57)【特許請求の範囲】
【請求項１】
システムであって、
データ処理装置と、
前記データ処理装置とデータ通信する非一時的なコンピュータ読取り可能記憶媒体とを含み、前記非一時的なコンピュータ読取り可能記憶媒体は、前記データ処理装置によって実行可能な命令を格納しており、前記命令は、実行されると、前記データ処理装置に以下の動作を実行させ、前記以下の動作は、
データを処理するようにとの複数の要求の各々ごとに、
データを処理するようにとの前記要求を特定のエンティティのためのクライアントデバイス（１０４）から受信する動作と、
前記要求に応答するためのサイズを決定する動作と、
データを処理するようにとの前記複数の要求のセットであって、データを処理するようにとの少なくとも２つ以上の要求を含む前記セットにおける各々の要求であって、前記複数の要求のセットにおける各々の要求は２つ以上のエンティティを含むエンティティのセットにおける１エンティティに対応しており、前記各々の要求ごとに、
前記特定のエンティティと前記要求に応答するための前記サイズとを示す割当て要求を帯域幅調整システム（１０８）に提供する動作と、
前記要求に応答する際に用いるべき前記特定のエンティティについての割当てを前記帯域幅調整システム（１０８）から受信する動作と、
前記割当て、前記要求に応答するための前記サイズ、および、前記データ処理装置上の前記特定のエンティティについてのトークンの発生量に基づいて、その時点で前記要求に応答すべきかどうかを確率的に判断する動作とを含み、
前記確率的に判断する動作は、セットのうちの要求の第１のサブセットの各々の要求について、その時点で前記要求に応答すべきと確率的に判断したことに応じて、
前記要求に応答させ、前記要求に応答するための前記サイズは前記トークンの発生量から差引かれ、
前記確率的に判断する動作は、セットのうちの要求の第２のサブセットの各々の要求について、その時点で前記要求に応答すべきでないと確率的に判断したことに応じて、
予め定められた期間が経過したかどうかを判断させ、
前記予め定められた期間が経過したとの判断に応じて、
前記要求が応答されないだろうことを示すメッセージを前記クライアントデバイス（１０４）に送信させるか、または、
前記予め定められた期間がまだ経過していないとの判断に応じて、
前記トークンの発生量を前記割当ての量だけインクリメントさせ、
その時点で前記要求に応答すべきであるかどうかについての確率的判断を再判断させる、システム。
【請求項２】
その時点で前記要求に応答すべきかどうかを確率的に判断する動作は、前記割当て、前記要求に応答するための前記サイズ、前記データ処理装置上の前記特定のエンティティについての前記トークンの発生量、前記データ処理装置についての最大の許可遅延時間、および平均的な帯域幅調整遅延時間に基づいて、その時点で前記要求に応答すべきかどうかを確率的に判断する動作を含む、請求項１に記載のシステム。
【請求項３】
その時点で前記要求に応答すべきかどうかを確率的に判断する動作は、
前記割当て、前記要求に応答するための前記サイズ、および、前記データ処理装置上の前記特定のエンティティについての前記トークンの発生量を用いて、前記要求に応答する確率を決定する動作と、
乱数を生成する動作と、
前記乱数を前記確率と比較して、前記乱数が前記確率よりも大きいかどうかを判断する動作と、
前記乱数が前記確率以下であるとの判断に応じて、その時点で前記要求に応答すべきであると判断する動作、または、
前記乱数が前記確率よりも大きいとの判断に応じて、その時点で前記要求に応答すべきでないと判断する動作とを含む、請求項１に記載のシステム。
【請求項４】
前記動作は、
前記複数の要求のデータとは異なるデータを処理するようにとの前記複数の要求の第２のセットであって、データを処理するようにとの少なくとも１つ以上の要求を含む前記第２のセットにおける各々の要求ごとに、
前記データ処理装置上の前記特定のエンティティについての前記トークンの発生量が前記要求に応答するための前記サイズ未満であるかどうかを判断する動作と、
前記データ処理装置上の前記特定のエンティティについての前記トークンの発生量が前記要求に応答するための前記サイズ以上であると判断したことに応じて、前記要求に応答する動作とを含み、前記特定のエンティティと前記要求に応答するための前記サイズとを示す前記割当て要求を前記帯域幅調整システム（１０８）に提供する動作は、前記データ処理装置上の前記特定のエンティティについての前記トークンの発生量が前記要求に応答するための前記サイズ未満であると判断したことに応じて行なわれる、請求項１に記載のシステム。
【請求項５】
その時点で前記要求に応答すべきであるかどうかについての確率的判断を再判断する動作は、
前記データ処理装置上の前記特定のエンティティについての前記トークンの発生量が前記要求に応答するための前記サイズ未満であるかどうかを判断する動作と、
前記データ処理装置上の前記特定のエンティティについての前記トークンの発生量が前記要求に応答するための前記サイズ以上であると判断したことに応じて、前記要求に応答する動作、または、
前記データ処理装置上の前記特定のエンティティについての前記トークンの発生量が前記要求に応答するための前記サイズ未満であると判断したことに応じて、その時点で前記要求に応答すべきであるかどうかについての前記確率的判断を実行する動作とを含む、請求項４に記載のシステム。
【請求項６】
前記動作は、
前記トークンの発生量が負の値であるかどうかを判断する動作と、
前記特定のエンティティと前記要求に応答するための前記サイズと前記トークンの発生量とを示す更新済みの割当て要求を前記帯域幅調整システム（１０８）に提供する動作と、
更新済みの割当てを前記帯域幅調整システム（１０８）から受信する動作と、
前記トークンの発生量を前記更新済みの割当ての量だけインクリメントする動作とをさらに含む、請求項１から５のいずれか１項に記載のシステム。
【請求項７】
前記要求に応答する動作は、
前記トークンの発生量と前記要求に応答するための前記サイズとの間の差を示す負債値を決定する動作と、
前記負債値が負債限度を上回っているかどうかを判断する動作と、
前記負債値が前記負債限度を上回っていないと判断したことに応じて前記要求に応答する動作とを含む、請求項１に記載のシステム。
【請求項８】
前記データ処理装置は、クラウドコンピューティングシステムにおけるエンドポイント（１０６）の一部を含む、請求項１から７のいずれか１項に記載のシステム。
【請求項９】
前記帯域幅調整システム（１０８）を含む、請求項１に記載のシステム。
【請求項１０】
前記データ処理装置は、各々が前記帯域幅調整システム（１０８）に割当て要求を送信する複数のデバイスのグループにおける１のデバイスを含み、
前記要求に応答する際に用いるべき前記特定のエンティティについての前記割当てを前記帯域幅調整システム（１０８）から受信する動作は、前記複数のデバイスのグループにおける各々のデバイスから前記帯域幅調整システム（１０８）によって受信された、前記特定のエンティティについての前記割当て要求を用いて決定された割当てを受信する動作を含む、請求項１に記載のシステム。
【請求項１１】
前記複数のデバイスのグループにおける前記デバイスの各々に送信された前記特定のエンティティについての前記割当て要求の各々の合計は、前記特定のエンティティについてのバジェットと等しくなる、請求項１０に記載のシステム。
【請求項１２】
前記動作は、
更新済みの割当てを受信する動作を含み、その時点で前記要求に応答すべきかどうかについての前記確率的判断を再判断する動作は、前記更新済みの割当て、前記要求に応答するための前記サイズ、および、前記データ処理装置上の前記特定のエンティティについての前記トークンの発生量を用いて、その時点で前記要求に応答すべきかどうかを確率的に判断する動作を含む、請求項１に記載のシステム。
【請求項１３】
前記特定のエンティティについてのデータを処理するようにとの前記要求を受信する動作は、読出し要求または書込み要求のうちの１つを受信する動作を含む、請求項１から１２のいずれか１項に記載のシステム。
【請求項１４】
前記特定のエンティティについてのデータを処理するようにとの前記要求を受信する動作は、特定のユーザについての要求を受信する動作を含む、請求項１から１３のいずれか１項に記載のシステム。
【請求項１５】
前記特定のエンティティについてのデータを処理するようにとの前記要求を受信する動作は、特定の企業についての要求を受信する動作を含む、請求項１から１４のいずれか１項に記載のシステム。
【請求項１６】
前記要求に応答する動作は、
前記要求に対する応答を決定する動作と、
前記クライアントデバイス（１０４）に前記応答を提供する動作とを含む、請求項１に記載のシステム。
【請求項１７】
その時点で前記要求に応答すべきかどうかについての前記確率的判断を再判断する動作は、前記予め定められた期間が経過するまで、その時点で前記要求に応答すべきかどうかについての前記確率的判断を再判断する動作を含む、請求項１に記載のシステム。
【請求項１８】
前記複数の要求のセットは、前記複数の要求内に前記要求の各々を含む、請求項１から１７のいずれか１項に記載のシステム。
【請求項１９】
前記要求に応答するための前記サイズを決定する動作は、前記要求に応答する際に処理されるべきデータのサイズを決定する動作を含み、
前記特定のエンティティと前記要求に応答するための前記サイズとを示す前記割当て要求を前記帯域幅調整システム（１０８）に提供する動作は、前記特定のエンティティと前記要求に応答する際に処理されるべきデータの前記サイズとを示す帯域幅割当て要求を前記帯域幅調整システム（１０８）に提供する動作を含み、
前記要求に応答する際に用いるべき前記特定のエンティティについての前記割当てを前記帯域幅調整システム（１０８）から受信する動作は、前記要求に応答する際に用いるべき前記特定のエンティティについての帯域幅割当てを前記帯域幅調整システム（１０８）から受信する動作を含み、
前記割当て、前記要求に応答するための前記サイズ、および、前記データ処理装置上の前記特定のエンティティについての前記トークンの発生量に基づいて、その時点で前記要求に応答すべきかどうかを確率的に判断する動作は、前記帯域幅割当て、処理されるべき前記データの前記サイズ、および、前記データ処理装置上の前記特定のエンティティについての前記トークンの発生量に基づいて、その時点で前記要求に応答すべきかどうかを確率的に判断する動作を含む、請求項１に記載のシステム。
【請求項２０】
前記要求に応答するための前記サイズを決定する動作は、前記特定のエンティティのために前記データ処理装置を含むエンドポイント（１０６）によって処理されるべき要求の量を決定する動作を含み、
前記特定のエンティティと前記要求に応答するための前記サイズとを示す前記割当て要求を前記帯域幅調整システム（１０８）に提供する動作は、前記特定のエンティティと、前記特定のエンティティのために前記エンドポイント（１０６）によって処理されるべき前記要求の量とを示す割当て要求を前記帯域幅調整システム（１０８）に提供する動作を含み、
前記割当て、前記要求に応答するための前記サイズ、および、前記データ処理装置上の前記特定のエンティティについての前記トークンの発生量に基づいて、その時点で前記要求に応答すべきかどうかを確率的に判断する動作は、前記割当て、応答されるべき前記要求についての１の値、および、前記データ処理装置上の前記特定のエンティティについての前記トークンの発生量に基づいて、その時点で前記要求に応答すべきかどうかを確率的に判断する動作を含む、請求項１に記載のシステム。
【請求項２１】
コンピュータによって実行可能な命令を有するコンピュータ読取り可能なプログラムであって、前記命令は、実行されると、前記コンピュータに以下の動作を実行させ、前記以下の動作は、
データを処理するようにとの複数の要求の各々ごとに、
データを処理するようにとの前記要求を特定のエンティティのためのクライアントデバイス（１０４）から受信する動作と、
前記要求に応答するためのサイズを決定する動作と、
データを処理するようにとの前記複数の要求のセットであって、データを処理するようにとの少なくとも２つ以上の要求を含む前記セットにおける各々の要求であって、前記複数の要求のセットにおける各々の要求は２つ以上のエンティティを含むエンティティのセットにおける１エンティティに対応しており、前記各々の要求ごとに、
前記特定のエンティティと前記要求に応答するための前記サイズとを示す割当て要求を帯域幅調整システム（１０８）に提供する動作と、
前記要求に応答する際に用いるべき前記特定のエンティティについての割当てを前記帯域幅調整システム（１０８）から受信する動作と、
前記割当て、前記要求に応答するための前記サイズ、および、前記コンピュータ上の前記特定のエンティティについてのトークンの発生量に基づいて、その時点で前記要求に応答すべきかどうかを確率的に判断する動作とを含み、
前記確率的に判断する動作は、セットのうちの要求の第１のサブセットの各々の要求について、その時点で前記要求に応答すべきと確率的に判断したことに応じて、
前記要求に応答させ、前記要求に応答するための前記サイズは前記トークンの発生量から差引かれ、
前記確率的に判断する動作は、セットのうちの要求の第２のサブセットの各々の要求について、その時点で前記要求に応答すべきでないと確率的に判断したことに応じて、
予め定められた期間が経過したかどうかを判断させ、
前記予め定められた期間が経過したとの判断に応じて、
前記要求が応答されないだろうことを示すメッセージを前記クライアントデバイスに送信させるか、または、
前記予め定められた期間がまだ経過していないとの判断に応じて、
前記トークンの発生量を前記割当ての量だけインクリメントさせ、
その時点で前記要求に応答すべきであるかどうかについての前記確率的判断を再判断させる、コンピュータ読取り可能なプログラム。
【請求項２２】
コンピュータによって実現される方法であって、
データを処理するようにとの複数の要求の各々ごとに、
データを処理するようにとの前記要求を、特定のエンティティのためのクライアントデバイスから受信するステップ（２０２）と、
前記要求に応答するためのサイズを決定するステップ（２０４）と、
データを処理するようにとの前記複数の要求のセットであって、データを処理するようにとの少なくとも２つ以上の要求を含む前記セットにおける各々の要求であって、前記複数の要求のセットにおける各々の要求は２つ以上のエンティティを含むエンティティのセットにおける１エンティティに対応しており、前記各々の要求ごとに、
前記特定のエンティティと、前記要求に応答するための前記サイズとを示す割当て要求を帯域幅調整システムに提供するステップ（２０６）と、
前記要求に応答する際に用いるべき前記特定のエンティティについての割当てを前記帯域幅調整システムから受信するステップ（２０８）と、
前記割当て、前記要求に応答するためのサイズ、および、データ処理装置上の前記特定のエンティティについてのトークンの発生量に基づいて、その時点で前記要求に応答すべきかどうかを確率的に判断するステップ（２１０）とを含み、
前記確率的に判断する動作は、セットのうちの要求の第１のサブセットの各々の要求について、その時点で前記要求に応答すべきと確率的に判断したことに応じて、
前記要求に応答させ（２１４）、前記要求に応答するための前記サイズは前記トークンの発生量から差引かれ、
前記確率的に判断する動作は、セットのうちの要求の第２のサブセットの各々の要求について、その時点で前記要求に応答すべきでないと確率的に判断したことに応じて、
予め定められた期間が経過したかどうかを判断させ（２１６）、
前記予め定められた期間が経過したとの判断に応じて、
前記要求が応答されないだろうことを示すメッセージを前記クライアントデバイスに送信させ（２１８）、または、
前記予め定められた期間がまだ経過していないとの判断に応じて、
前記トークンの発生量を前記割当ての量だけインクリメントさせ（２２０）、
その時点で前記要求に応答すべきかどうかについての前記確率的判断を再判断させる、コンピュータによって実現される方法。
【発明の詳細な説明】
【背景技術】
【０００１】
背景
コールドストレージシステムは、格納されたデータにアクセスする能力が制限されることを引換えにして、より低コストのデータストレージを提供し得る。たとえば、データへのアクセスは、単独のユーザのためにグローバルに達成され得る最大帯域幅または１秒あたりの問合せ数（queries per second：ＱＰＳ）によって制限される可能性がある。これらの制限により、非ストレージリソース（たとえば、コンピュータ処理装置（computer processor unit：ＣＰＵ）、メモリまたはネットワークリソース）の総コストに上限を設けることができ、ストレージプロバイダが低コストのデータストレージを提供し続けることを可能にし得る。
【発明の概要】
【課題を解決するための手段】
【０００２】
概要
いくつかの実現例においては、システムは複数のエンドポイントおよびグローバル帯域幅調整装置（グローバルスロットラー）を含む。エンドポイントの各々は、さまざまなユーザについての要求を受信し得る。エンドポイントが要求を受信すると、これらエンドポイントは、グローバル帯域幅調整装置に帯域幅割当て要求を提出し、当該グローバル帯域幅調整装置は、エンドポイントによってユーザにどれだけの帯域幅を割当てなければならないかを、各々のユーザおよび各々のエンドポイントごとに、判断する。エンドポイントは、割当てられた帯域幅を用いて、要求が処理されるべきである確率を決定し、要求を処理するまで、または、タイムアウトが過ぎてしまい、要求が処理されないだろうことがユーザに通知されるべきであると判断するまで、その決定を繰返す。
【０００３】
たとえば、特定のユーザが２ＭＢ／ｓの最大帯域幅限度を有しており、かつ、各々の要求が１ＭＢのデータに対するものであり、異なるエンドポイントによって受信された場合、システムは、２０個の異なるエンドポイントから特定のユーザに関する２０個の読出し要求を受信し得る。グローバル帯域幅調整装置は、各々のエンドポイントに０．１ＭＢ／ｓの帯域幅を割当て、要求を受信したエンドポイントに当該割当てを与える。エンドポイントは、帯域幅割当てを用いて、要求を許可する確率を決定する。
【０００４】
要求が最初に許可されなければ、エンドポイントは、予め定められた間隔で、タイムアウト（たとえば、最大の許可遅延時間）が過ぎるまで、要求を許可すべきかどうかを判断してもよい。要求を許可するのに利用可能な帯域幅が用いられていなかったと想定すると、たとえば、エンドポイントが帯域幅割当てと、確率を決定するようにとの要求を処理するのに用いられなかった帯域幅の量との両方を用いていると想定すると、その後の各々の判断のたびに、エンドポイントが要求を許可する確率がより高くなる。
【０００５】
要求がエンドポイントによって許可されず、エンドポイントが後に同じ要求または特定のユーザについて異なる要求を受信する場合、エンドポイントは、要求についての新しい割当てを受信し、かつ、すでに発生していた帯域幅を用いて、要求を許可すべきか否かについての新しい確率を決定してもよい。
【０００６】
概して、この明細書中に記載される主題の革新的な一局面は、以下の動作を含む方法において具体化され得る。以下の動作は、データを処理するようにとの複数の要求の各々ごとに、データを処理するようにとの要求を特定のエンティティのためのクライアントデバイスから受信する動作と、当該要求に応答する際に処理されるべきデータのサイズを決定する動作と、データを処理するようにとの当該複数の要求のセットであって、データを処理するようにとの少なくとも２つ以上の要求を含む当該セットにおける各々の要求であって、当該複数の要求のセットにおける各々の要求は２つ以上のエンティティを含むエンティティのセットにおける１エンティティに対応しており、当該各々の要求ごとに、特定のエンティティと要求に応答する際に処理されるべきデータのサイズとを示す帯域幅割当て要求を帯域幅調整システムに提供する動作と、要求に応答する際に用いるべき特定のエンティティのための帯域幅割当てを帯域幅調整システムから受信する動作と、帯域幅割当て、処理されるべきデータのサイズ、および、データ処理装置上の特定のエンティティについてのトークンの発生量に基づいて、その時点で要求に応答すべきかどうかを確率的に判断する動作と、セットのうちの要求の第１のサブセットについて、その時点で要求に応答すべきと確率的に判断したことに応じて、要求に応答する動作と、セットのうちの要求の第２のサブセットについて、その時点で要求に応答すべきでないと確率的に判断したことに応じて、予め定められた期間が経過したかどうかを判断する動作と、予め定められた期間が経過したとの判断に応じて、要求が応答されないだろうことを示すメッセージをクライアントデバイスに送信する動作、または、予め定められた期間がまだ経過していないとの判断に応じて、トークンの発生量を帯域幅割当ての量だけインクリメントする動作と、その時点で要求に応答すべきであるかどうかについての確率的判断を再判断する動作とを含む。この局面の他の実施形態は、対応するコンピュータシステム、装置、および１つ以上のコンピュータストレージデバイスに記録されたコンピュータプログラムを含み、各々は、方法の動作を実行するように構成されている。１つ以上のコンピュータのシステムは、オペレーション時に上記動作を当該システムに実行させるソフトウェア、ファームウェア、ハードウェア、またはこれらの組合せが当該システムにインストールされていることにより、特定のオペレーションまたは動作を実行するように構成され得る。１つ以上のコンピュータプログラムは、データ処理装置によって実行されたときに、装置に動作を実行させる命令を含むことによって、特定のオペレーションまたは動作を実行するように構成され得る。
【０００７】
概して、この明細書中に記載される主題の革新的な一局面は、以下の動作を含む方法で具体化することができる。以下の動作は、データを処理するようにとの複数の要求の各々ごとに、データを処理するようにとの要求を、特定のエンティティのためのクライアントデバイスから、エンドポイントによって受信する動作と、特定のエンティティのためにエンドポイントによって処理されるべき要求の量を決定する動作と、データを処理するようにとの当該複数の要求のセットであって、データを処理するようにとの少なくとも２つ以上の要求を含む当該セットにおける各々の要求であって、当該複数の要求のセットにおける各々の要求は２つ以上のエンティティを含むエンティティのセットにおける１エンティティに対応しており、当該各々の要求ごとに、特定のエンティティと、特定のエンティティのためにエンドポイントによって処理されるべき要求の量とを示す割当て要求を、帯域幅調整システムに提供する動作と、要求に応答する際に用いるべき特定のエンティティについての割当てを帯域幅調整システムから受信する動作と、割当て、応答されるべき要求についての１の値、および、データ処理装置上の特定のエンティティについてのトークンの発生量に基づいて、その時点で要求に応答すべきかどうかを確率的に判断する動作と、セットのうち要求の第１のサブセットについて、その時点で要求に応答すべきと確率的に判断したことに応じて、要求に応答する動作と、セットのうち要求の第２のサブセットについて、その時点で要求に応答すべきでないと確率的に判断したことに応じて、予め定められた期間が経過したかどうかを判断する動作と、予め定められた期間が経過したとの判断に応じて、要求が応答されないだろうことを示すメッセージをクライアントデバイスに送信する動作、または、予め定められた期間がまだ経過していないとの判断に応じて、トークンの発生量を割当ての量だけインクリメントする動作と、その時点で要求に応答すべきかどうかについての確率的判断を再判断する動作とを含む。この局面の他の実施形態は、対応するコンピュータシステム、装置、および１つ以上のコンピュータストレージデバイスに記録されたコンピュータプログラムを含み、各々は、方法の動作を実行するように構成されている。１つ以上のコンピュータのシステムは、オペレーション時に上記動作を当該システムに実行させるソフトウェア、ファームウェア、ハードウェア、またはこれらの組合せが当該システムにインストールされていることにより、特定のオペレーションまたは動作を実行するように構成され得る。１つ以上のコンピュータプログラムは、データ処理装置によって実行されたときに、装置に上記動作を実行させる命令を含むことによって、特定のオペレーションまたは動作を実行するように構成され得る。
【０００８】
概して、この明細書中に記載される主題の革新的な一局面は、以下の動作を含む方法で具体化することができる。以下の動作は、データを処理するようにとの複数の要求の各々ごとに、データを処理するようにとの要求を、特定のエンティティのためのクライアントデバイスから受信する動作と、要求に応答するためのサイズを決定する動作と、データを処理するようにとの複数の要求のセットであって、データを処理するようにとの少なくとも２つ以上の要求を含む当該セットにおける各々の要求であって、当該複数の要求のセットにおける各々の要求は２つ以上のエンティティを含むエンティティのセットにおける１エンティティに対応しており、各々の要求ごとに、特定のエンティティと要求に応答するためのサイズとを示す割当て要求を帯域幅調整システムに提供する動作と、要求に応答する際に用いるべき特定のエンティティについての割当てを帯域幅調整システムから受信する動作と、割当て、要求に応答するためのサイズ、および、データ処理装置上の特定のエンティティについてのトークンの発生量に基づいて、その時点で要求に応答すべきかどうかを確率的に判断する動作と、セットのうち要求の第１のサブセットについて、その時点で要求に応答すべきと確率的に判断したことに応じて、要求に応答する動作と、セットのうち要求の第２のサブセットについて、その時点で要求に応答すべきでないと確率的に判断したことに応じて、予め定められた期間が経過したかどうかを判断する動作と、予め定められた期間が経過したとの判断に応じて、要求が応答されないだろうことを示すメッセージをクライアントデバイスに送信する動作、または、予め定められた期間がまだ経過していないとの判断に応じて、トークンの発生量を割当ての量だけインクリメントする動作と、その時点で要求に応答すべきであるかどうかについての確率的判断を再判断する動作とを含む。この局面の他の実施形態は、対応するコンピュータシステム、装置、および１つ以上のコンピュータストレージデバイスに記録されたコンピュータプログラムを含み、各々は、方法の動作を実行するように構成されている。１つ以上のコンピュータのシステムは、オペレーション時に上記動作を当該システムに実行させるソフトウェア、ファームウェア、ハードウェア、またはこれらの組合せが当該システムにインストールされていることにより、特定のオペレーションまたは動作を実行するように構成され得る。１つ以上のコンピュータプログラムは、データ処理装置によって実行されたときに、装置に動作を実行させる命令を含むことによって、特定のオペレーションまたは動作を実行するように構成され得る。
【０００９】
上述および他の実施形態は、各々、任意には、以下の特徴の１つ以上を単独でまたは組合せて含み得る。その時点で要求に応答すべきかどうかを確率的に判断する動作は、帯域幅割当て、処理されるべきデータのサイズ、データ処理装置上の特定のエンティティについてのトークンの発生量、データ処理装置についての最大の許可遅延時間、および平均的な帯域幅調整遅延時間に基づいて、その時点で要求に応答すべきかどうかを確率的に判断する動作を含み得る。その時点で要求に応答すべきかどうかを確率的に判断する動作は、帯域幅割当て、処理されるべきデータのサイズ、および、データ処理装置上の特定のエンティティについてのトークンの発生量を用いて、要求に応答する確率を決定する動作と、乱数を生成する動作と、乱数を確率と比較して、乱数が確率よりも大きいかどうかを判断する動作と、乱数が確率以下であるとの判断に応じて、その時点で要求に応答すべきと判断する動作、または、乱数が確率よりも大きいとの判断に応じて、その時点で要求に応答すべきでないと判断する動作とを含み得る。
【００１０】
いくつかの実現例においては、当該方法は、複数の要求のデータとは異なるデータを処理するようにとの複数の要求の第２のセットであるとともにデータを処理するようにとの少なくとも１つ以上の要求を含む第２のセットにおける各々の要求ごとに、データ処理装置上の特定のエンティティについてのトークンの発生量がデータのサイズ未満であるかどうかを判断するステップと、データ処理装置上の特定のエンティティについてのトークンの発生量がデータのサイズ以上であると判断したことに応じて、要求に応答するステップとを含み得る。特定のエンティティと要求に応答する際に処理されるべきデータのサイズとを示す帯域幅割当て要求を帯域幅調整システムに提供するステップは、データ処理装置上の特定のエンティティについてのトークンの発生量がデータのサイズ未満であると判断したことに応じて、要求に応答する際に処理されるべきデータのサイズと特定のエンティティとを示す帯域幅割当て要求を帯域幅調整システムに提供するステップを含み得る。その時点で要求に応答すべきであるかどうかについての確率的判断を再判断するステップは、データ処理装置上の特定のエンティティについてのトークンの発生量がデータのサイズ未満であると判断するステップと、データ処理装置上の特定のエンティティについてのトークンの発生量がデータのサイズ以上であると判断したことに応じて、要求に応答するステップ、または、データ処理装置上の特定のエンティティについてのトークンの発生量がデータのサイズ未満であると判断したことに応じて、その時点で要求に応答すべきであるかどうかについての確率的判断を実行するステップとを含み得る。
【００１１】
いくつかの実現例においては、当該方法は、トークンの発生量が負の数であるかどうかを判断するステップと、特定のエンティティおよびトークンの発生量を示す、更新済みの帯域幅割当て要求を帯域幅調整システムに提供するステップと、更新済みの帯域幅割当てを帯域幅調整システムから受信するステップと、トークンの発生量を更新済みの帯域幅割当ての量だけインクリメントするステップとを含み得る。要求に応答するステップは、要求に応答する際に処理されるべきデータのサイズをトークンの発生量から差引くステップを含み得る。要求に応答するステップは、トークンの発生量と要求に応答する際に処理されるべきデータのサイズとの間の差を示す負債値を決定するステップと、負債値が債務限界を上回っているかどうかを判断するステップと、負債値が負債限度を上回っていないとのの判断に応じて、要求に応答するステップとを含み得る。
【００１２】
いくつかの実現例においては、データ処理装置は、クラウドコンピューティングシステムにおけるエンドポイントの一部を含み得る。いくつかの実現例においては、システムは帯域幅調整システムを含み得る。データ処理装置は、各々が帯域幅割当て要求を帯域幅調整システムに送信する複数のデバイスのグループにおける１のデバイスを含み得る。要求に応答する際に用いるべき特定のエンティティについての帯域幅割当てを帯域幅調整システムから受信するステップは、複数のデバイスのグループにおける各デバイスから、帯域幅調整システムによって受信された特定のエンティティについての帯域幅割当て要求を用いて決定された帯域幅割当てを受信するステップを含み得る。複数のデバイスのグループにおけるデバイスの各々に送信された特定のエンティティについての帯域幅割当て要求の各々の合計は、特定のエンティティについての帯域幅バジェット（budget）と等しくなり得る。
【００１３】
いくつかの実現例においては、当該方法は、更新済みの帯域幅割当てを受信するステップを含み得る。その時点で要求に応答すべきであるかどうかについての確率的判断を再判断するステップは、更新済みの帯域幅割当て、処理されるべきデータのサイズ、および、データ処理装置上の特定のエンティティについてのトークンの発生量を用いて、その時点で要求に応答すべきかどうかを確率的に判断するステップを含み得る。特定のエンティティについてのデータを処理するようにとの要求を受信するステップは、読出し要求または書込み要求のうちの１つを受信するステップを含み得る。特定のエンティティについてのデータを処理するようにとの要求を受信するステップは、特定のユーザについての要求を受信するステップを含み得る。特定のエンティティについてのデータを処理するようにとの要求を受信するステップは、特定の企業についての要求を受信するステップを含み得る。要求に応答するステップは、要求に対する応答を決定するステップと、クライアントデバイスに対して応答を提供するステップとを含み得る。その時点で要求に応答すべきであるかどうかについての確率的判断を再判断するステップは、予め定められた期間が経過するまで、その時点で要求に応答すべきかどうかについての確率的判断を再判断するステップを含み得る。複数の要求のセットは、複数の要求内の各要求を含み得る。
【００１４】
いくつかの実現例においては、その時点で要求に応答すべきかどうかを確率的に判断するステップは、割当て、要求に応答するためのサイズ、データ処理装置上の特定のエンティティについてのトークンの発生量、データ処理装置についての最大の許可遅延時間、および平均的な帯域幅調整遅延時間に基づいて、その時点で要求に応答すべきかどうかを確率的に判断するステップを含み得る。その時点で要求に応答すべきかどうかを確率的に判断するステップは、割当て、要求に応答するためのサイズ、および、データ処理装置上の特定のエンティティについてのトークンの発生量を用いて、要求に応答する確率を決定するステップと、乱数を生成するステップと、乱数を確率と比較して、乱数が確率よりも大きいかどうかを判断するステップと、乱数が確率以下であるとの判断に応じて、その時点で要求に応答すべきと判断するステップ、または、乱数が確率よりも大きいとの判断に応じて、その時点で要求に応答すべきでないと判断するステップとを含み得る。
【００１５】
いくつかの実現例においては、当該方法は、複数の要求のデータとは異なるデータを処理するようにとの複数の要求の第２のセットであるとともにデータを処理するようにとの少なくとも１つ以上の要求を含んでいる第２のセットにおける各々の要求ごとに、データ処理装置上の特定のエンティティについてのトークンの発生量が要求に応答するためのサイズ未満であるかどうかを判断するステップと、データ処理装置上の特定のエンティティについてのトークンの発生量が要求に応答するためのサイズ以上であると判断したことに応じて、要求に応答するステップとを含み得る。特定のエンティティと要求に応答するためのサイズとを示す割当て要求を帯域幅調整システムに提供するステップは、データ処理装置上の特定のエンティティについてのトークンの発生量が要求に応答するためのサイズ未満であると判断したことに応じて、行なわれてもよい。その時点で要求に応答すべきであるかどうかについての確率的判断を再判断するステップは、データ処理装置上の特定のエンティティについてのトークンの発生量が要求に応答するためのサイズ未満であるかどうかを判断するステップと、データ処理装置上の特定のエンティティについてのトークンの発生量が要求に応答するためのサイズ以上であると判断したことに応じて、要求に応答するステップ、または、データ処理装置上の特定のエンティティについてのトークンの発生量が要求に応答するためのサイズ未満であると判断したことに応じて、その時点で要求に応答すべきであるかどうかについての確率的判断を実行するステップとを含み得る。
【００１６】
いくつかの実現例においては、当該方法は、トークンの発生量が負の数であるかどうかを判断するステップと、特定のエンティティとトークンの発生量とを示す更新済みの割当て要求を帯域幅調整システムに提供するステップと、更新済みの割当てを帯域幅調整システムから受信するステップと、トークンの発生量を更新済みの割当ての量だけインクリメントするステップと、を含み得る。要求に応答するステップは、要求に応答するためのサイズをトークンの発生量から差引くステップを含み得る。要求に応答するステップは、トークンの発生量と要求に応答するためのサイズとの間の差を示す負債値を決定するステップと、負債値が負債限度を上回っているかどうかを判断するステップと、負債値が負債限度を上回っていないと判断したことに応じて要求に応答するステップとを含み得る。データ処理装置は、各々が帯域幅調整システムに割当て要求を送信する複数のデバイスのグループのうちの１のデバイスを含み得る。要求に応答する際に用いるべき特定のエンティティのための帯域幅割当てを帯域幅調整システムから受信するステップは、複数のデバイスのグループにおける各々のデバイスから帯域幅調整システムによって受信された、特定のエンティティについての割当て要求を用いて決定された割当てを受信するステップを含み得る。複数のデバイスのグループにおけるデバイスの各々に送信された特定のエンティティについての割当て要求の各々の合計は、特定のエンティティについてのバジェットと等しくなり得る。当該方法は、更新済みの割当てを受信するステップを含み得る。その時点で要求に応答すべきであるかどうかについての確率的判断を再判断するステップは、更新済みの割当て、要求に応答するためのサイズ、および、データ処理装置上の特定のエンティティについてのトークンの発生量を用いて、その時点で要求に応答すべきかどうかを確率的に判断するステップを含み得る。
【００１７】
いくつかの実現例においては、要求に応答するためのサイズを決定するステップは、要求に応答する際に処理されるべきデータのサイズを決定するステップを含んでもよい。特定のエンティティと要求に応答するためのサイズとを示す割当て要求を帯域幅調整システムに提供するステップは、特定のエンティティと要求に応答する際に処理されるべきデータのサイズとを示す帯域幅割当て要求を帯域幅調整システムに提供するステップを含み得る。要求に応答する際に用いるべき特定のエンティティについての割当てを帯域幅調整システムから受信するステップは、要求に応答する際に用いるべき特定のエンティティについての帯域幅割当てを帯域幅調整システムから受信するステップを含み得る。割当て、要求に応答するためのサイズ、および、データ処理装置上の特定のエンティティについてのトークンの発生量に基づいて、その時点で要求に応答すべきかどうかを確率的に判断するステップは、帯域幅割当て、処理されるべきデータのサイズ、および、データ処理装置上の特定のエンティティについてのトークンの発生量に基づいて、その時点で要求に応答すべきかどうかを確率的に判断するステップを含み得る。要求に応答するためのサイズを決定するステップは、特定のエンティティのためにデータ処理装置を含むエンドポイントによって処理されるべき要求の量を決定するステップを含み得る。特定のエンティティと要求に応答するためのサイズとを示す割当て要求を帯域幅調整システムに提供するステップは、特定のエンティティと、特定のエンティティのためにエンドポイントによって処理されるべき要求の量とを示す割当て要求を、帯域幅調整システムに提供するステップを含み得る。割当て、要求に応答するためのサイズ、および、データ処理装置上の特定のエンティティについてのトークンの発生量に基づいて、その時点で要求に応答すべきかどうかを確率的に判断するステップは、割当て、応答されるべき当該要求についての１の値、および、データ処理装置上の特定のエンティティについてのトークンの発生量に基づいて、その時点で要求に応答すべきかどうかを確率的に判断するステップを含み得る。
【００１８】
この明細書中に記載される主題は、特定の実施形態において実現することができるとともに、結果として、以下の利点のうち１つ以上をもたらし得る。いくつかの実現例においては、以下に記載されるシステムおよび方法は、他のシステムと比べて、より迅速な許可の判断、グローバルな許可判断、充分に活用されていないバジェットの期間の最小化、クライアントがより長い期間にわたって帯域幅バジェットを平均的に超過することの確実な防止、またはこれらのうち２つ以上の組合せを可能にする。たとえば、グローバル帯域幅調整装置は、データストレージシステムが、各エンドポイントごとに、特定のユーザまたはクライアントデバイスについての帯域幅割当てを決定することを可能にする。いくつかの例においては、エンドポイントによって特定のユーザまたはクライアントデバイスが負債を負うことが許可されると、当該エンドポイントは、バジェットが十分に利用されていない期間を最小限にし、他の場合に応答されない可能性もある要求に応答することを可能にする。いくつかの例においては、エンドポイントは、クライアントがより長い期間にわたって平均して帯域幅バジェットを超過しないことを確実にするために、最大負債しきい値を有し得る。いくつかの実現例においては、以下に記載されるシステムおよび方法は、トークンバケットが０以外のリフィルレートを得ることと、エンドポイントが最終的に特定のユーザまたはクライアントデバイスのための負債をカバーするのに十分な帯域幅を有することとを確実にするために、特定のユーザまたはクライアントデバイスのためのトークンバケットが負の値を有している場合、帯域幅調整システムにデマンドを報告する。
【００１９】
この明細書中に記載される主題の１つ以上の実現例の詳細が、添付の図面および以下の説明において述べられる。主題についての他の特徴、局面および利点が以下の説明、添付の図面および添付の特許請求の範囲から明らかになるだろう。
【図面の簡単な説明】
【００２０】
【図１】データストレージシステムがクライアントデバイスから要求に応答する環境の一例である。
【図２】要求に応答すべきかどうかを確率的に判断するためのプロセスを示すフロー図である。
【図３】要求に応答すべきかどうかを判断するためのプロセスを示すフロー図である。
【図４】トークンの量をインクリメントするためのプロセスを示すフロー図である。
【図５】この明細書に記載されている、コンピュータによって実現される方法に関連付けて用いることができるコンピューティングシステムを示すブロック図である。
【発明を実施するための形態】
【００２１】
さまざまな図面内の参照番号および符号は同様の要素を示している。
詳細な説明：
例示的なデータストレージシステム
図１は、データストレージシステム１０２がクライアントデバイスＡ１０４ａ〜Ｂ１０４ｂから要求に応答している環境１００の一例である。環境１００は複数のクライアントデバイスＡ１０４ａ〜Ｂ１０４ｂを含む。複数のクライアントデバイスＡ１０４ａ〜Ｂ１０４ｂの各々は、期間ＴＡ中に、データストレージシステム１０２における１つ以上のエンドポイントＡ１０６ａ〜Ｂ１０６ｂにデータの要求を送信する。たとえば、クライアントデバイスＢ１０４ｂは、２つの異なるセットのデータを要求してもよく、すなわち、エンドポイントＡ１０６ａに第１のデータセットを要求し、エンドポイントＢ１０６ｂに第２のデータセットを要求してもよい。
【００２２】
エンドポイントＡ１０６ａ〜Ｂ１０６ｂは、期間ＴＢ中に、特定のエンティティ（たとえば、その時点でアクティブな各々のエンティティ）についての、その時点でそれらエンドポイントが観察したデマンドをデータストレージシステム１０２に含まれるグローバル帯域幅調整装置１０８に報告する。たとえば、期間ＴＢ中に、エンドポイントＡ１０６ａ〜Ｂ１０６ｂの各々は、クライアントデバイスＡ１０４ａ〜Ｂ１０４ｂから受信された、未決着の（outstanding）クライアントデータ要求についての帯域幅要求を送信する。未決着のクライアントデータ要求は、期間ＴＡ（たとえば、期間ＴＢの直前の期間）中に受信されたデータ要求を含む。いくつかの例においては、未決着のクライアントデータ要求は、期間ＴＡよりも前に受信されているとともに応答されるのを待っている要求を含み得る。
【００２３】
以下の例においては、クライアントデバイスごとの帯域幅割当てを参照し得るが、帯域幅割当ては各エンティティごと（たとえば、各ユーザごと）であってもよい。これらの例においては、帯域幅割当ては、ネットワーク帯域幅を、たとえばＭＢ／ｓで指定する値に関係している。たとえば、帯域幅割当てが各エンティティごとである場合、組織は、各々がデータストレージシステム１０２にデータを要求する複数のクライアントデバイスを有していてもよい。データストレージシステム１０２は、組織のための最大帯域幅を有するとともに、以下により詳細に記載されるように、この最大帯域幅を、組織のクライアントデバイスから受信した要求に適用する。
【００２４】
グローバル帯域幅調整装置１０８は、期間ＴＣ中にエンドポイントＡ１０６ａ〜Ｂ１０６ｂに帯域幅割当てを送信する。たとえば、以下により詳細に記載されるように、グローバル帯域幅調整装置１０８は、各エンティティごとに（たとえば、各クライアントデバイスＡ１０４ａ〜Ｂ１０４ｂごと、および各エンドポイントＡ１０６ａ〜Ｂ１０６ｂごとに）帯域幅割当てを決定してもよい。グローバル帯域幅調整装置１０８は、クライアントデバイスＡ１０４ａについての最大限利用可能な帯域幅をエンドポイントＡ１０６ａに割当ててもよい。なぜなら、エンドポイントＡ１０６ａは、クライアントデバイスＡ１０４ａからのデータ要求を受信しているとともにクライアントデバイスＡ１０４ａについての未決着の要求を有する唯一のエンドポイントであるからである。最大限利用可能な帯域幅は、クライアントデバイスＡ１０４ａについてのルール（たとえば、クライアントデバイスＡ１０４ａがサブスクライブした最大帯域幅）、または、データストレージシステム１０２についてのルール（たとえば、データストレージシステム１０２にデータを要求するいずれかのクライアントデバイスにとって利用可能な最大帯域幅）に基づいて決定されてもよい。
【００２５】
グローバル帯域幅調整装置１０８は、クライアントデバイスＢ１０４ｂについての帯域幅バジェットをエンドポイントＡ１０６ａ〜Ｂ１０６ｂの各々に割当てる。たとえば、クライアントデバイスＢ１０４ｂについての最大帯域幅が３ＭＢ／ｓである場合、グローバル帯域幅調整装置１０８はエンドポイントＡ１０６ａ〜Ｂ１０６ｂの各々に１．５ＭＢ／ｓの帯域幅バジェットを割当ててもよい。
【００２６】
特定のクライアントデバイスまたはユーザのためにエンドポイントＡ１０６ａ〜Ｂ１０６ｂの各々に対してグローバル帯域幅調整装置１０８によって送信されたすべての割当ての合計は、特定のクライアントデバイスまたはユーザについての帯域幅バジェット（たとえば最大帯域幅バジェット）と等しい。グローバル帯域幅調整装置１０８は、特定のクライアントデバイスまたはユーザについてのエンドポイントＡ１０６ａ〜Ｂ１０６ｂの各々についての割当てを決定してもよい。
【００２７】
グローバル帯域幅調整装置１０８は、期間ＴＣ中にエンドポイントＡ１０６ａ〜Ｂ１０６ｂに帯域幅バジェットを提供する。たとえば、グローバル帯域幅調整装置１０８は、特定のクライアントデバイスについての帯域幅割当てがエンドポイント間で異なる場合、エンドポイントＡ１０６ａに特有の、クライアントデバイスＡ１０４ａ〜Ｂ１０４ｂの各々についての帯域幅割当てを含むメッセージをエンドポイントＡ１０６ａに送信するとともに、クライアントデバイスＢ１０４ｂについての帯域幅割当てを含む第２のメッセージをエンドポイントＢ１０６ｂに送信する。
【００２８】
期間ＴＤ中に、エンドポイントＡ１０６ａ〜Ｂ１０６ｂの各々は、それぞれのエンドポイントについて未決着であるペンディング中の要求に応答すべきかどうかを確率的に判断する。エンドポイントＢ１０６ｂは、たとえば、期間ＴＡ中にクライアントデバイスＢ１０４ｂから受信された要求と、未処理であるとともに期間ＴＡよりも前に受信された他のいずれかの要求とに応答すべきかどうかを判断してもよい。いくつかの例においては、エンドポイントＡ１０６ａ〜Ｂ１０６ｂの各々は、要求に応答すべきかどうかを確率的に判断するために別の方法を用いてもよい。
【００２９】
いくつかの例においては、グローバル帯域幅調整装置１０８は、特定のクライアントデバイスについての帯域幅バジェットを、エンドポイント間で等しく、またはエンドポイントＡ１０６ａ〜Ｂ１０６ｂによって報告されたデマンドに応じて比例的に、分散させてもよい。たとえば、グローバル帯域幅調整装置１０８が１ＭＢ、２ＭＢおよび３ＭＢのそれぞれのデマンドについての３つのエンドポイントから帯域幅割当て要求を受信する場合、かつ、帯域幅バジェットが対応するクライアントデバイスに対して３ＭＢ／ｓである場合、グローバル帯域幅調整装置１０８は、０．５ＭＢ／ｓ、１ＭＢ／ｓおよび１．５ＭＢ／ｓの帯域幅割当てをそれぞれエンドポイントに送信することとなる。これらの割当ては、帯域幅バジェット合計を超過しないという効果を及ぼす。平均２秒以内に割当てを提供するグローバル帯域幅調整装置は、各々の要求が平均４秒以内に応答され得るという技術的効果を及ぼす。
【００３０】
いくつかの実現例においては、グローバル帯域幅調整装置１０８は、各々の応答するエンドポイントに、そのデマンドすべてが（たとえば、クライアントデバイスによって要求されるデータのために）割当てられるべきであると判断することから開始してもよく、次いで、すべての割当ての合計がクライアントデバイスについてのバジェットと等しくなるまで最も高い割当てを減らし続けてもよい。上述の例を用いて、グローバル帯域幅調整装置１０８は、３つのエンドポイントの各々に１ＭＢ／ｓの割当てを送信し得る。
【００３１】
いくつかの実現例においては、グローバル帯域幅調整装置は、エンドポイントＡ１０６ａ〜Ｂ１０６ｂのうち１つ以上について最低限のデマンドレベルを有し得る。たとえば、エンドポイントの各々は、同じ最低限のデマンドレベルまたは異なる最低限のデマンドレベルを有し得る。いくつかの例においては、データストレージシステム１０２におけるエンドポイントの各々は、１ＭＢ／ｓの最低限のデマンドを有してもよい。これらの例においては、グローバル帯域幅調整装置１０８は、エンドポイントの各々に最低限のデマンドを割当て得るとともに、さらに、蓄積された最低限のデマンドと、エンティティについての最大帯域幅バジェットとの間に差があるかどうかを判断し得る。たとえば、各々のエンドポイントについての最低限のデマンドが１ＭＢ／ｓであり、帯域幅バジェットがエンティティに対して３ＭＢ／ｓであり、グローバル帯域幅調整装置１０８がエンティティについて３つの帯域幅要求を受信すると、グローバル帯域幅調整装置１０８は、エンドポイントの各々に１ＭＢ／ｓの帯域幅割当てを割当てる。
【００３２】
エンティティについての帯域幅バジェットが３．５ＭＢ／ｓであり、帯域幅割当て要求が１ＭＢ、２ＭＢおよび３ＭＢのためのものである場合、グローバル帯域幅調整装置１０８は、最低限のデマンドをエンドポイントの各々（たとえば、１ＭＢ／ｓ）に割当て、次いで、残りの帯域幅（たとえば０．５ＭＢ／ｓ）をエンドポイントに割当てる。グローバル帯域幅調整装置１０８は、第２のエンドポイントおよび第３のエンドポイントがそれぞれ１ＭＢおよび２ＭＢの残りのデマンドを有すると判断し、これらのエンドポイントに帯域幅のうち残りの０．５ＭＢ／ｓを割当てる。たとえば、グローバル帯域幅調整装置は、１ＭＢ／ｓ、１．２５ＭＢ／ｓおよび１．２５ＭＢ／ｓの最終帯域幅割当てのために、それぞれ、第２のエンドポイントおよび第３のエンドポイントの各々に対して、０．２５ＭＢ／ｓの追加の帯域幅を割当ててもよい。いくつかの例においては、グローバル帯域幅調整装置１０８は、１ＭＢ／ｓ、１．１６７ＭＢ／ｓおよび１．３３３ＭＢ／ｓの最終帯域幅割当てのために、それぞれ、第２のエンドポイントに０．１６７ＭＢ／ｓを割当て、第３のエンドポイントに０．３３３ＭＢ／ｓを割当ててもよい。
【００３３】
エンドポイントＡ１０６ａ〜Ｂ１０６ｂの各々は、たとえば、各々のアクティブなクライアントデバイスまたはユーザのために、エンドポイントが受信した要求の送信元であるすべてのクライアントデバイスについてのトークンバケットを維持する。エンドポイントＡ１０６ａ〜Ｂ１０６ｂのうちの１つが、特定のクライアントデバイスについての帯域幅割当てをグローバル帯域幅調整装置１０８から受信すると、エンドポイントは、たとえば、エンドポイントがグローバル帯域幅調整装置１０８から特定のクライアントデバイスについての別の帯域幅割当てを受信するまで、特定のクライアントデバイスのための帯域幅割当てを、クライアントデバイスのためのトークンバケットについてのフィルレートとして用いる。フィルレートは、エンドポイントがクライアントデバイスのためのトークンバケットについての値を更新するレートである。
【００３４】
エンドポイントがクライアントデバイスから要求を受信すると、エンドポイントは、要求に応答する際に処理されるべきバイト数を決定する。たとえば、要求が読出し要求である場合、エンドポイントは、当該エンドポイントが要求に応じてクライアントデバイスに提供するであろうバイト数を決定する。エンドポイントは、要求に応答する際に処理されるべきバイト数をクライアントデバイスのためのトークンバケットにおけるトークンの数と比較する。要求に応答する際に処理されるべきバイト数がクライアントデバイスのためのトークンバケットにおけるトークンの数以下であるとエンドポイントが判断すると、当該エンドポイントは、要求を許可してもよく、たとえば、要求に応答すべきと判断して、クライアントデバイスのためのトークンバケットにおけるトークンから、要求に応答する際に処理されるべきバイト数を差引いてもよい。
【００３５】
要求に応答する際に処理されるべきバイト数がクライアントデバイスのためのトークンバケットにおけるトークンの数よりも大きいとエンドポイントが判断すると、当該エンドポイントは、要求を許可すべきかどうか（たとえば、要求に直ちに応答すべきかどうか）を確率的に判断する。たとえば、エンドポイントは、クライアントデバイスについてのその時点での帯域幅割当て、クライアントデバイスのためのトークンバケットにおけるトークンの数、および要求に応答するのに必要なトークンの数、たとえば、要求に応答する際に処理されるべきバイト数を用いて、クライアントデバイスについての要求を許可すべきかどうかを確率的に判断してもよい。この場合、帯域幅バジェットを上回っているとともに従来の帯域幅調整技術によっては応答され得ない要求が依然として応答され得るという技術的な効果が得られる。
【００３６】
エンドポイントが、たとえば、要求に応答し始めるために要求を許可するべきであると確率的に判断する場合、エンドポイントは、クライアントデバイスのためのトークンバケットから、クライアントデバイスについての要求に応答する際に処理されるべきバイト数を差引いて、クライアントデバイスのためのトークンバケットを負の状態（たとえば負債の状態）にする。トークンバケットについての値は、サイズの基準、たとえば、ビット、バイト、メガバイト、ギガバイト、テラバイト、または、データについての別の適切な量、であってもよい。
【００３７】
エンドポイントの確率的判断によって、結果として、要求が許可されない場合、エンドポイントは要求を拒絶しないかもしれない。エンドポイントは、キューに要求を配置し、スケジュールに従って、たとえば、予め定められた時間間隔ごとに１回、確率的判断を繰返す。たとえば、エンドポイントは、要求が許可されるかまたは要求についての許可期限が経過するまで、たとえば、予め定められた期間が経過するまで、クライアントデバイスの要求について、１秒に１回、確率的判断を実行してもよい。
【００３８】
要求についての許可期限が経過すると、エンドポイントは要求を拒絶する。エンドポイントは、要求が応答されないだろうことを示すメッセージをクライアントデバイスに送信してもよい。
【００３９】
エンドポイントが確率的判断を繰返す際に、当該エンドポイントは異なる帯域幅割当て、トークン量またはこれら両方を用い得る。たとえば、トークンバケットにおけるトークンの量を帯域幅割当ての量だけ増やすことによって確率的判断が実行されるたびに、エンドポイントは、特定のクライアントデバイスまたはユーザのためのトークンバケットにおけるトークンの量を更新する。
【００４０】
エンドポイントは、クライアントデバイスについての更新済みの帯域幅割当てをグローバル帯域幅調整装置１０８から受信してもよい。たとえば、確率的判断を実行した後、エンドポイントは、エンドポイントのうちの１つがクライアントデバイスについての要求を受信したことに応じて、エンドポイントのうち１つがクライアントデバイスについての要求の応答を完了してクライアントデバイスについて負以外のトークンバケットを有することに応じて、またはこれらの両方に応じて、グローバル帯域幅調整装置から更新済みの帯域幅割当てを受信してもよい。
【００４１】
いくつかの例においては、エンドポイントＡ１０６ａは、第１の期間中にクライアントデバイスＢ１０４ｂから要求を受信し、要求に応答すべきではないと確率的に判断してもよい。エンドポイントＢ１０６ｂは、第１の期間後、第２の期間中に、クライアントデバイスＢ１０４ｂから要求を受信し、グローバル帯域幅調整装置１０８に帯域幅割当て要求を送信する。グローバル帯域幅調整装置１０８は、クライアントデバイスＢ１０４ｂについての要求がエンドポイントＡ１０６ａ上では依然として未決着であると判断し、エンドポイントＡ１０６ａ〜Ｂ１０６ｂの各々から受信された帯域幅割当て要求を用いて、エンドポイントＡ１０６ａおよびエンドポイントＢ１０６ｂの両方についての帯域幅割当てを決定する。エンドポイントＡ１０６ａ〜Ｂ１０６ｂは、グローバル帯域幅調整装置１０８から帯域幅割当て受信し、当該割当てを用いて、クライアントデバイスＢ１０４ｂからそれぞれの要求に応答すべきかどうかを確率的に判断する。たとえば、エンドポイントＡ１０６ａは、クライアントデバイスＢ１０４ｂについての要求を許可すべきかどうかを確率的に判断するために、新しく受信された帯域幅割当てを用いる。
【００４２】
エンドポイントは、当該エンドポイントが要求に応答すべきと判断するか否かについて、更新済みの帯域幅割当てを受信し得る。たとえば、エンドポイントは、クライアントデバイスについての要求に応答すべきと判断した後に、更新済みの帯域幅割当てを受信してもよい。エンドポイントは、クライアントデバイスについての要求に直ちに応答すべきではないと判断した後に、更新済みの帯域幅割当てを受信してもよい。
【００４３】
いくつかの実現例においては、エンドポイントは、確率的判断を実行するためにプロセスの一部として以下の式（１）を用いてもよい。たとえば、エンドポイントは、式（１）を用いて、クライアントデバイスについての要求が許可される確率である許可確率（admission probability：ＡｄｍＰｒｏｂ）を決定してもよい。ＡｄｍＰｒｏｂが１以上である場合、エンドポイントは要求を許可する、たとえば、要求に応答する。ＡｄｍＰｒｏｂが１と０との間である場合、エンドポイントは要求を許可すべきかどうかについての確率的判断を実行し続ける。ＡｄｍＰｒｏｂは、如何なる適切な値（たとえば整数）であってもよく、対応する要求が自動的には許可されない１よりも大きな絶対値、負の数、または、これらのうち２つ以上の組合せを有していてもよい。
【００４４】
AdmProb = (-ln(eps) / (MaxAdmLat - AvgThrottlerLat)) * (Asgn / Debt)  (1) 
エンドポイントは、ｅｐｓを、エンドポイントがたとえば異なるクライアントデバイスから同時にＮの要求を受信する最大の確率として判断してもよく、当該要求はすべて拒絶される。たとえば、エンドポイントは、１０００に等しいＮの値についてｅｐｓを決定してもよい。いくつかの例においては、Ｎの値は、エンドポイントが特定のクライアントデバイスについて受信し得る要求の最大数である。いくつかの実現例においては、エンドポイントはｅｐｓを０．００１以下の値として規定してもよい。アドミニストレータがｅｐｓの値を規定してもよい。
【００４５】
エンドポイントは、ＭａｘＡｄｍＬａｔを最大の許可遅延時間として判断する。ＭａｘＡｄｍＬａｔは、たとえば、要求が許可されたかまたは許可されなかったことを示すために、要求がクライアントデバイスから受信されるときと、エンドポイントが要求に応答するときとの間における最大時間量であり得る。たとえば、各々の判断が、要求が許可されないだろうという結果になる場合、対応する要求をクライアントデバイスから受信してから最大の許可遅延時間が経過するまで（この時点で、要求が許可されなかったことと、エンドポイントが要求に応答しないであろうこととを示すメッセージをエンドポイントがクライアントデバイスに送信することとなる）、エンドポイントは確率的判断を実行し続けてもよい。
【００４６】
エンドポイントは、ＡｖｇＴｈｒｏｔｔｌｅｒＬａｔを、グローバル帯域幅調整装置１０８から帯域幅割当てを得るための平均的な遅延時間として判断してもよい。エンドポイントは、Ａｓｇｎを、クライアントのためのその時点での帯域幅割当て（すなわち、エンドポイントが要求を許可すべきか否かについての確率的判断を実行するのに用いられる、その時点での帯域幅割当て）として判断してもよい。エンドポイントは、Ｄｅｂｔをその時点での負債（たとえば、要求が許可された場合に作成され得るクライアントデバイスのためのトークンバケットにおけるトークンの負の数）として判断してもよい。エンドポイントによってＡｖｇＴｈｒｏｔｔｌｅｒＬａｔ、ＡｓｇｎおよびＤｅｂｔについての上述の値が用いられると、その時点での負債が増加するのに応じて要求が応答される可能性が低下し、これにより、クライアントデバイスがより長い期間にわたって平均的に帯域幅バジェットを超過しなくなるという技術的な効果が得られる。さらに、式を高速で評価できるので、要求の許可を高速で判断できる。たとえば、エンドポイントはグローバル帯域幅調整装置からの判断を待つことなく式を用いて判断を行うことができる。
【００４７】
たとえば、エンドポイントＢ１０６ｂは、２ＭＢ／ｓの帯域幅限度を有するクライアントデバイスＢ１０４ｂから読出し要求を受信し得る。読出し要求は、特定の期間（たとえば、同じ１秒の時間間隔）中に、データストレージシステム１０２における別のエンドポイントによってそれぞれ受信される２０個の読出し要求のうちの１つである。各々の読出し要求は１ＭＢのデータに対応している。エンドポイントＢ１０６ｂを含むエンドポイントの各々は、１ＭＢのデマンドを示すクライアントデバイスＢ１０４ｂについての帯域幅要求をグローバル帯域幅調整装置１０８に送信する。グローバル帯域幅調整装置１０８は、クライアントデバイスＢ１０４ｂについての２ＭＢ／ｓの帯域幅限度を決定し、０．１ＭＢ／ｓのエンドポイントの各々についての帯域幅割当てを決定する。グローバル帯域幅調整装置１０８は、エンドポイントＢ１０６ｂを含むエンドポイントの各々に帯域幅割当てを送信する。ＡｖｇＴｈｒｏｔｔｌｅｒＬａｔが２秒であると想定すると、エンドポイントの各々は、グローバル帯域幅調整装置１０８に帯域幅割当て要求を送信して２秒以内に帯域幅割当てを受信するだろう。
【００４８】
エンドポイントＢ１０６ｂは、クライアントデバイスＢ１０４ｂがエンドポイントＢ１０６ｂ上にその時点で如何なる負債も有しておらず、このため、要求を許可した後の負債が要求について処理されたデータ量に相当するだろうと判断する。たとえば、Ｄｅｂｔは１ＭＢに等しく、ＭａｘＡｄｍＬａｔは４秒である。エンドポイントＢ１０６ｂは、０．００１に等しいｅｐｓを用いて、ＡｄｍＰｒｏｂ＝−ｌｎ（０．００１）／２ｓ＊０．１ＭＢ／ｓ／１ＭＢ＝０．３５を決定する。エンドポイントＢ１０６ｂは、ＡｄｍＰｒｏｂ＝０．３５を用いて、要求を許可すべきかどうかを確率的に判断する。たとえば、エンドポイントＢ１０６ｂは、０と１との間の乱数を生成し、生成された乱数をＡｄｍＰｒｏｂと比較する。生成された乱数がＡｄｍＰｒｏｂを満たす場合、たとえば、ＡｄｍＰｒｏｂ以下である場合、エンドポイントＢ１０６ｂは、要求を許可すべきである、たとえば、要求に応答すべきである、と判断する。生成された乱数がＡｄｍＰｒｏｂを満たしていない場合、たとえば、ＡｄｍＰｒｏｂよりも大きい場合、エンドポイントＢ１０６ｂはその時点で要求を許可すべきではないと判断する。
【００４９】
要求を許可すべきでないとの判断に応じて、エンドポイントＢ１０６ｂは、要求を受信してからＭａｘＡｄｍＬａｔ期間が経過したかどうかを判断する。この例においては、実際の帯域幅調整遅延時間が２秒であり、各々の判断に１秒かかる場合、３秒が経過したこととなり、ＭａｘＡｄｍＬａｔは４秒となる。
【００５０】
ＭａｘＡｄｍＬａｔが経過していないとエンドポイントＢ１０６ｂが判断すると、エンドポイントＢ１０６ｂは要求を許可すべきかどうかを再び確率的に判断する。たとえば、エンドポイントＢ１０６ｂは、クライアントデバイスＢ１０４ｂについてのトークンの量を、帯域幅割当てだけ、たとえば０．１だけインクリメントして、クライアントデバイスＢ１０４ｂのためのトークンバケットにおける総トークン値を０．１ＭＢにする。エンドポイントＢ１０６ｂは、要求が許可された場合に発生するであろう負債の量を決定する。たとえば、要求に応答するのに必要とされる１ＭＢから０．１ＭＢのトークンを引くと、結果として、０．９ＭＢのＤｅｂｔ値になる。
【００５１】
エンドポイントＢ１０６ｂは、式（１）を用いてＡｄｍＰｒｏｂ＝−ｌｎ（０．００１）／２ｓ＊０．１ＭＢ／ｓ／０．９ＭＢ＝０．３９を決定し、別の乱数を生成する。エンドポイントＢ１０６ｂは、他の乱数をＡｄｍＰｒｏｂ＝０．３９の更新済みの値と比較して、要求を許可すべきかどうかを確率的に判断する。エンドポイントＢ１０６ｂが要求を許可すべきであると確率的に判断する場合、エンドポイントＢ１０６ｂは要求に応じてデータを判断する。たとえば、要求に応答し、クライアントデバイスＢ１０４ｂにデータを与えるかまたはデータストレージにデータを格納する。エンドポイントＢ１０６ｂが要求を許可すべきでないと確率的に判断する場合、エンドポイントＢ１０６ｂは、たとえば、最大の許可遅延時間が経過して以降は要求が応答されないだろうということを示すメッセージをクライアントデバイスＢ１０４ｂに送信する。
【００５２】
クライアントデバイスＡ１０４ａ〜Ｂ１０４ｂは、ネットワークを介してデータを送受信することができるパーソナルコンピュータ、移動通信デバイスおよび他の装置を含み得る。ローカルエリアネットワーク（local area network：ＬＡＮ）、ワイドエリアネットワーク（wide area network：ＷＡＮ）などのネットワーク、インターネットまたはこれらの組合せは、クライアントデバイスＡ１０４ａ〜Ｂ１０４ｂとエンドポイントＡ１０６ａ〜Ｂ１０６ｂとを接続する。いくつかの実現例においては、ネットワークはエンドポイントＡ１０６ａ〜Ｂ１０６ｂとグローバル帯域幅調整装置１０８とを接続する。
【００５３】
上述の文脈においてエンドポイントＡ１０６ａ〜Ｂ１０６ｂを単独で参照しているが、環境１００の実現例は、たとえば、クラウドコンピューティングサービスとして展開される１セットのリモートコンピュータを含むとともに互いに組合わされて動作する単一のエンドポイントコンピュータまたは複数のエンドポイントコンピュータを用いてもよい。上述の文脈において単一のグローバル帯域幅調整装置１０８を参照しているが、環境１００の実現例は、たとえば、クラウドコンピューティングサービスとして展開される１セットのリモートコンピュータを含むとともに互いに組合わされて動作する単一のグローバル帯域幅調整コンピュータまたは複数のグローバル帯域幅調整コンピュータを用いてもよい。
【００５４】
例示的なプロセスフロー
図２は、要求に応答すべきかどうかを確率的に判断するためのプロセス２００を示すフロー図である。たとえば、プロセス２００は、環境１００からエンドポイントＡ１０６ａ〜Ｂ１０６ｂのうちの一方または両方によって使用され得る。
【００５５】
エンドポイントは、特定のエンティティのためのクライアントデバイスから、データを処理するようにとの要求を受信する（２０２）。データを処理するようにとの要求は、たとえば、データストレージからの／へのデータの読出し／書込みであってもよい。たとえば、エンドポイントはクライアントデバイスから読出し要求または書込み要求を受信する。特定のエンティティはクライアントデバイスまたはクライアントデバイスのユーザであってもよい。いくつかの例においては、特定のエンティティは、クライアントデバイスを所有する組織などのエンティティであってもよい。
【００５６】
エンドポイントは、要求に応答する際に処理されるべきデータのサイズを決定する（２０４）。これは、要求に応答するためのサイズを決定することを意味する。たとえば、エンドポイントは、データストレージから読出されてクライアントデバイスに提供されることとなるバイトの数もしくはビットの数を決定するか、または、クライアントデバイスから受信されてデータストレージに書込まれることとなるバイトの数もしくはビットの数を決定する。
【００５７】
いくつかの実現例においては、エンドポイントは要求に応答するためのサイズを決定する。サイズは、１秒当たりの（たとえばＭＢ／ｓ）リソースユニットまたは１秒当たりの要求であってもよい。要求に応答するためのサイズは、処理されるべきデータのサイズ、特定のエンティティについて受信される要求の数、或る期間（たとえば１秒）中に特定のエンティティについて受信される要求の数、特定のエンティティのためにエンドポイントによって受信される要求の数、または、要求に応答するための別の適切な値であってもよい。エンドポイントは、要求に応答するためのサイズを用いて、要求に応答すべきかどうかを確率的に判断する。
【００５８】
エンドポイントは、特定のエンティティと要求に応答する際に処理されるべきデータのサイズとを示す帯域幅割当て要求を帯域幅調整システムに提供する（２０６）。エンドポイントは、クライアントデバイスを示すデータを特定のエンティティとして含み得る。いくつかの例においては、エンドポイントは、クライアントデバイスのユーザを示すデータを特定のエンティティとして含む。
【００５９】
エンドポイントは、要求に応答する際に用いるべき特定のエンティティのための帯域幅割当てを帯域幅調整システムから受信する（２０８）。たとえば、帯域幅調整システムは、複数の異なるエンドポイントから帯域幅割当て要求を受信する。帯域幅調整システムは、帯域幅割当て要求を用いて、どの要求が特定のエンティティのためのものであるかを判断する。帯域幅調整システムは、特定のエンティティに割付けられた最大帯域幅を決定する。帯域幅調整システムは、特定のエンティティに割付けられた最大帯域幅と特定のエンティティについての帯域幅割当て要求とを用いて、帯域幅調整システムが受信した特定のエンティティについての帯域幅割当て要求の送信元であるエンドポイントの各々についての帯域幅割当てを決定する。帯域幅調整システムは、特定のエンティティについての帯域幅割当て（たとえば同じ帯域幅割当て、または異なる帯域幅割当て）をエンドポイントの各々に提供する。
【００６０】
帯域幅割当ては如何なる適切なタイプの値であってもよい。たとえば、帯域幅割当ては、バイト毎秒、ビット毎秒、メガバイト毎秒またはギガバイト毎秒であってもよい。
【００６１】
エンドポイントは、帯域幅割当て、処理されるべきデータのサイズ、および特定のエンティティについてのトークンの発生量に基づいて、要求にその時点で応答すべきかどうかを示す値を確率的に決定する（２１０）。たとえば、エンドポイントは、エンドポイントが要求に応答すべきかどうかを示すブール値を決定する。トークンの発生量は如何なる適切な単位の値であってもよい。たとえば、トークンの発生量は、ビット、バイト、メガバイト、ギガバイト、テラバイトまたはデータの別の適切な量の値であってもよい。
【００６２】
いくつかの例においては、エンドポイントは、エンドポイントが要求に応答すべき確率を表わす第１の値を生成する。エンドポイントは、たとえば乱数発生器を用いて、第２の値を任意に生成し、第１の値を第２の値と比較して、エンドポイントが要求に応答すべきかどうかを確率的に判断する。これらの例においては、エンドポイントは、第１の値と第２の値との比較の結果であるブール値を生成し、ブール値を値として用いてもよい。いくつかの実現例においては、エンドポイントは第２の値を値として用いてもよい。
【００６３】
エンドポイントは、要求が応答されるべきであることを当該値が示しているかどうかを判断する（２１２）。たとえば、エンドポイントは、ブール値が真であるかまたは偽であるかを判断する。いくつかの例においては、エンドポイントは、第２の値が第１の値を満たしているかどうか、たとえば第１の値以下であるかどうかを判断する。
【００６４】
要求が応答されるべきであることを値が示していると判断したことに応じて、エンドポイントは要求に応答する（２１４）。たとえば、エンドポイントは、要求されたデータをデータストレージから検索し、たとえば読出し要求に応じて、検索されたデータをクライアントデバイスに提供する。いくつかの例においては、エンドポイントは、たとえば書込み要求の受信に応じて、データストレージに受信データを格納する。
【００６５】
要求が応答されるべきでないことを値が示していると判断したこと応じて、エンドポイントは、予め定められた期間が経過したかどうかを判断する（２１６）。たとえば、エンドポイントは、最大の許可遅延時間についての期間が経過したかどうかを判断する。
【００６６】
予め定められた期間が経過したとの判断に応じて、エンドポイントは、要求が応答されないだろうことを示すメッセージをクライアントデバイスに送信する（２１８）。たとえば、エンドポイントは、要求を識別するとともに、要求がこの時には応答されないだろうことを示すメッセージをクライアントデバイスに送信する。エンドポイントは、後に、同じ動作の実行を要求する別の要求（たとえば、データストレージから読出されてクライアントデバイスに提供される同じデータ、または、データストレージに書込まれる同じデータ）をクライアントデバイスから受信するかもしれない。
【００６７】
エンドポイントが、後に、要求に応答すべきでないと確率的に判断した後にクライアントデバイスから別の要求を受信すると、エンドポイントは、特定のエンティティについてのトークンバケットにトークンを蓄積していてもよく、たとえば、他の要求に応答する確率がより高くなっていてもよい。たとえば、エンドポイントが特定のエンティティについてのトークンバケットに０．２ＭＢを蓄積して、クライアントデバイスから要求に応答すべきでないと判断した場合、エンドポイントはトークンバケットに０．２ＭＢを維持し、クライアントデバイスから他の要求に応答すべきかどうかについての後の確率的判断の際中に、たとえば、エンドポイントがクライアントデバイスから特定のエンティティについての如何なる介在的要求も受信しない場合、またはこれら両方の場合に、これらのトークンを用いる。エンドポイントは、さらに、特定のエンティティについての他の要求に応答するより高い確率を有することとなる。
【００６８】
予め定められた期間がまだ経過していないと判断したことに応じて、エンドポイントは、帯域幅割当ての量を用いて決定される値だけトークンの発生量をインクリメントする（２２０）。たとえば、エンドポイントは、帯域幅割当ての量に予め定められた期間の長さを乗ずることによって、値を決定してもよい。エンドポイントは、帯域幅割当て、処理されるべきデータのサイズ、および特定のエンティティについての更新済みのトークン量に基づいて、要求にその時点で応答すべきかどうかを示す第２の値を確率的に決定し始める。エンドポイントは、たとえば、帯域幅調整システムから受信された更新済みの帯域幅割当てを用いて第２の値を決定してもよい。
【００６９】
上述のプロセス２００におけるステップの順序は、単に例示なものに過ぎず、要求に応答すべきかどうかの確率的な判断は異なる順序で実行されてもよい。たとえば、エンドポイントは、その時点で要求に応答すべきかどうか示す値を確率的に決定する前に、特定のエンティティについてのトークンの発生量をインクリメントしてもよい。
【００７０】
いくつかの実現例においては、プロセス２００が含み得るステップはより多くてもまたはより少なくてもよく、ステップのうちのいくつかは複数のステップに分割することができる。たとえば、エンドポイントは、たとえば最大の許可遅延時間なしで、ステップ２１６および２１８を実行することなく、プロセス２００を実行してもよい。これらの例においては、エンドポイントは、要求が応答されるまで、要求が応答されるべきでないことを示すメッセージをクライアントデバイスから受信するまで、またはこれらの両方になるまで、要求に応答すべきかどうかについての確率的判断を実行し続ける。いくつかの実現例においては、エンドポイントは、以下により詳細に記載されるプロセス３００またはプロセス４００をプロセス２００の一部として実行してもよい。
【００７１】
いくつかの実現例においては、エンドポイントは、帯域幅調整システムから更新済みの帯域幅割当てを受信し得る。たとえば、エンドポイントは、第１の帯域幅割当てを受信し、結果としてエンドポイントが要求の応答を行なわなくなる第１の帯域幅割当てを用いて第１の確率的判断を実行し、次いで、帯域幅調整システムから第２の帯域幅割当てを受信し得る。エンドポイントは、第２の帯域幅割当て、たとえば、処理されるべきデータのサイズおよび特定のエンティティについてのトークンの発生量を用いて、要求に応答すべきかどうかについての第２の確率的判断を実行してもよい。
【００７２】
図３は、要求に応答すべきかどうかを判断するためのプロセス３００を示すフロー図である。たとえば、プロセス３００は、環境１００からエンドポイントＡ１０６ａ〜Ｂ１０６ｂのうちの一方または両方によって使用され得る。
【００７３】
エンドポイントは、特定のエンティティについてのトークンの発生量が要求のために処理されるべきデータのサイズよりも小さいかどうかを判断する（３０２）。たとえば、エンドポイントは、特定のエンティティについての要求をクライアントデバイスから受信する。エンドポイントは、要求に応答するために読出されるかまたは書込まれるべきデータのサイズを決定する。エンドポイントは、読出されるかまたは書込まれるべきデータのサイズを特定のエンティティについてのトークンバケットにおけるトークンの発生量と比較する。
【００７４】
特定のエンティティについてのトークンの発生量がデータのサイズ以上であると判断したことに応じて、エンドポイントは要求に応答する（３０４）。たとえば、エンドポイントは、読出し要求について要求されたデータを検索し、クライアントデバイスにデータを与える。いくつかの例においては、エンドポイントはクライアントデバイスから受信したデータをデータストレージに書込む。エンドポイントは、帯域幅調整システムに帯域幅割当てを要求することなく要求に応答する。なぜなら、トークンの発生量が、要求について処理されるべきデータのサイズ以上であるからである。
【００７５】
特定のエンティティについてのトークンの発生量がデータのサイズ未満であると判断したことに応じて、エンドポイントは、帯域幅割当て要求を帯域幅調整システムに提供する（３０６）。たとえば、エンドポイントは、要求が直ちに応答されるべきでないと判断し、要求に応答すべきかどうかを確率的に判断する。
【００７６】
いくつかの実現例においては、プロセス３００が含み得るステップはより多くてもまたはより少なくてもよく、ステップのうちのいくつかは複数のステップに分割することができる。たとえば、エンドポイントは、プロセス３００を上述のプロセス２００におけるステップ２０６の一部として実行してもよい。
【００７７】
図４は、トークンの量をインクリメントするためのプロセス４００のフロー図である。たとえば、プロセス４００は、環境１００からエンドポイントＡ１０６ａ〜Ｂ１０６ｂのうちの一方または両方によって使用され得る。
【００７８】
エンドポイントは、特定のエンティティについてのトークンの発生量が負の値であるかどうかを判断する（４０２）。たとえば、特定のエンティティについて（たとえば、特定のクライアントデバイスまたは特定のユーザについて）の要求に応答した後、エンドポイントは、特定のエンティティについてのトークンバケットにおけるトークンの発生量が負であると判断する。
【００７９】
エンドポイントは、特定のエンティティおよびトークンの発生量を示す帯域幅割当て要求を帯域幅調整システムに提供する（４０４）。たとえば、エンドポイントは、特定のエンティティおよびトークンの負の量についての識別を帯域幅調整システムに提供する。エンドポイントは、当該エンドポイントが特定のエンティティについての未決着の要求を有するかどうかに関わらず、帯域幅調整システムに帯域幅割当て要求を与え得る。
【００８０】
エンドポイントは、特定のエンティティについての帯域幅割当てを帯域幅調整システムから受信する（４０６）。たとえば、帯域幅調整システムは、特定のエンティティのためのエンドポイントからの帯域幅割当て要求を、他のエンドポイントから受信された特定のエンティティについての他の帯域幅割当て要求とともに用いて、特定のエンティティについての帯域幅割当てを決定する。帯域幅調整システムは、特定のエンティティについての異なる帯域幅割当て、または同じ帯域幅割当てをエンドポイントの各々に送信してもよい。
【００８１】
エンドポイントは、トークンの発生量を帯域幅割当ての量だけインクリメントする（４０８）。たとえば、エンドポイントは、特定のエンティティについてのトークンバケットにおけるトークンの発生量を、帯域幅調整システムから受信した帯域幅割当てにおいて示される量だけインクリメントする。特定のエンティティについての更新済みの帯域幅割当てが受信されるまで、トークンの発生量がもはや負でなくなるまで、またはこれらの両方になるまで、エンドポイントは、各々の時間間隔ごとに（たとえば、１秒の時間間隔ごとに）１回、特定のエンティティについてのトークンバケットにおけるトークンの発生量をインクリメントしてもよい。エンドポイントが特定のエンティティについての更新済みの帯域幅割当てを受信する場合、エンドポイントは更新済みの帯域幅割当てを用いてステップ４０８を実行する。
【００８２】
いくつかの実現例においては、プロセス４００が含み得るステップはより多くてもまたはより少なくてもよく、ステップのうちのいくつかは複数のステップに分割することができる。たとえば、エンドポイントはプロセス２００を実行した後にプロセス４００を実行してもよく、またはプロセス４００だけを実行してもよい。
【００８３】
オプションの実現例の詳細
いくつかの実現例においては、グローバル帯域幅調整装置は、周期的に（たとえば、１秒に１回）エンドポイントと通信する。グローバル帯域幅調整装置は、ベストエフォート方式でエンドポイントと通信してもよい。
【００８４】
いくつかの実現例においては、クライアントデバイスについての負債の量が、クライアントデバイスのためのトークンバケットからクライアントデバイスについての要求の応答時に処理されるべきバイト数を差引いた後に負債のしきい値量を上回る可能性がある場合、エンドポイントは、要求に応答すべきでないと判断する。たとえば、エンドポイントは、確率的判断を実行せずに、要求が応答されないだろうことを示すメッセージをクライアントデバイスに送信する。これらの例においては、エンドポイントは、要求が確率的判断を実行する前に応答された場合に発生した負債の量を判断し、さらに、負債の量が負債のしきい値量を満たさない（たとえば、負債のしきい値量以上である）と判断したことに応じて確率的判断を実行する。
【００８５】
いくつかの例においては、負債のしきい値量（たとえば最大の負債しきい値）は負の負債値であるかもしれない。データストレージシステムは、データストレージシステムにデータを要求するエンティティのために滑らかな帯域割当ての体感（smooth throttling experience）を提供するために、最大の負債しきい値を選択してもよい。たとえば、しきい値量は−１ＭＢであってもよい。要求に応答することによって発生することとなる負債の量がしきい値量未満であるとエンドポイントが判断する場合、当該エンドポイントは要求に応答しない。
【００８６】
いくつかの実現例においては、エンドポイントは、特定のクライアントデバイスからの複数の要求、特定のエンティティについての複数の要求、またはこれら両方を受信してもよい。これらの実現例においては、エンドポイントは、特定のクライアントデバイスまたは特定のエンティティについてのデマンドを、要求の各々に応答するために処理されるべきデータのサイズの合計として決定する。
【００８７】
いくつかの実現例においては、エンドポイントはトークンバケットを０にリセットしてもよい。たとえば、エンドポイントは、エンドポイントが特定のエンティティについての要求を受信してから、特定のエンティティについての要求に応答してから、または、たとえば要求が応答されないだろうことを示すメッセージを特定のエンティティに送信してから、予め定められた期間が経過した後に特定のエンティティについてのトークンバケットをゼロにリセットしてもよい。エンドポイントは、バケットが正の数のトークンまたは負の数のトークンを有している場合、トークンバケットをリセットし得る。いくつかの例においては、エンドポイントは、メモリ使用量（たとえば、トークンバケットを維持するのに必要なメモリ）を減らすようにトークンバケットをリセットしてもよい。
【００８８】
いくつかの実現例においては、データストレージシステムは、要求に応答すべきか否かを判断するために毎秒ごとに別のリソース単位を用いてもよい。たとえば、データストレージシステムは、毎秒当たりの要求を用いて、特定のエンティティについての要求に応答すべきかどうかを確率的に判断する。この例においては、各々のエンドポイントは、たとえば特定の期間中に各々のエンティティから受信された要求の数または応答されなかった要求の数を決定し、要求の数を示す割当て要求をグローバル帯域幅調整装置に送信する。この実現例においては、割当ては、毎秒当たりの要求を指定する値に関連しており、トークンバケットについての値は要求の量で測定される。グローバル帯域幅調整装置は、特定のエンティティに関して、特定のエンティティについての要求を受信したエンドポイントの各々についての要求および割当ての数を決定する。特定のエンティティについての、特定の期間中に受信されたかまたは応答されなかった要求を伴うエンドポイントは、グローバル帯域幅調整装置から割当てを受信し、式（１）を用いることにより、Ａｓｇｎをグローバル帯域幅調整装置から受信された割当てとして用いるとともに、Ｄｅｂｔを、要求が許可される場合に作成され得る負債の量として（たとえば要求の量で）用いて、特定のエンドポイントについての特定の要求に応答すべきかどうかを確率的に判断する。
【００８９】
たとえば、エンドポイントは、特定のエンティティについての２つの要求を受信してもよく、たとえば、同じ期間中に両方の要求を受信してもよく、または、応答されていない第１の要求を第１の期間中に、かつ、第２の要求を第１の期間の後に続く第２の期間中に受信してもよい。エンドポイントは、エンドポイントが２つの要求を有することを示す割当て要求をグローバル帯域幅調整装置に送信する。
【００９０】
要求のうちの１８個が他のエンドポイントから受信される場合、グローバル帯域幅調整装置は、特定のエンティティについての要求の最大数（たとえば、１秒ごとに１つの要求）と、特定のエンティティについて受信された要求の総数（たとえば２０）とを決定する。グローバル帯域幅調整装置は、エンドポイントの各々についての割当てを決定する。たとえば、グローバル帯域幅調整装置は、すべての要求ごとに１／２０＝０．０５要求／秒（requests per second：ＱＰＳ）の割当てを決定し得るとともに、エンドポイントについての割当てが、エンドポイントが２つの要求を受信してから０．１要求／秒となるはずであると判断し得る。グローバル帯域幅調整装置は、特定のエンティティについての要求を受信した他のエンドポイントについての他の割当てを決定する。
【００９１】
エンドポイントは、グローバル帯域幅調整装置から０．１要求／秒の割当てを受信し、２つの要求の各々ごとに、要求を許可すべきかどうかを確率的に判断する。要求の各々が１のサイズを有している（たとえば、１つの要求である）ので、要求が応答された場合に作成され得る負債の総量は、最初のうちは、要求のうちの１つが応答されるまで両方の要求に対して同じとなる。たとえば、特定のエンティティのためのエンドポイントのトークンバケットがゼロである場合、要求の両方についてのＤｅｂｔの値は１になるだろう。
【００９２】
この例においては、エンドポイントは、第１の要求についてＡｄｍＰｒｏｂ（要求の各々が応答される許可確率）を決定し、次いで、ＡｄｍＰｒｏｂを用いて、第１の要求に応答すべきかどうかを確率的に判断する。第１の要求が応答されるべきであるとエンドポイントが判断する場合、当該エンドポイントは要求を許可し、特定のエンティティについてのトークンバケットを更新する。次いで、エンドポイントは、第２の要求についてＤｅｂｔの更新済み値を決定し得る。エンドポイントは、Ｄｅｂｔの更新済み値が負債限度を上回っているかどうかを判断し得るとともに、上回っているのであれば、第２の要求が許可されないだろうと判断し得る。Ｄｅｂｔの更新済み値が負債限度を上回っていない場合、エンドポイントはＡｄｍＰｒｏｂについての更新済み値を決定し、第２の要求に応答すべきかどうかを確率的に判断し得る。
【００９３】
第１の要求に応答すべきでないとエンドポイントが確率的に判断すると、当該エンドポイントは、第２の要求に応答すべきかどうかを確率的に判断する際に第１の要求について決定されたＡｄｍＰｒｏｂについての値を用いてもよい。たとえば、第２の要求に応答することによって作成され得る負債の総量は、第１の要求に応答することによって作成され得る負債の総量と同じであり、特定のエンティティについての割当てが同じとなる。
【００９４】
付加的な実現例の詳細
本明細書に記載されている主題および機能的動作の実施形態は、デジタル電子回路で実現されてもよく、有形的に具体化されたコンピュータソフトウェアもしくはファームウェアで実現されてもよく、本明細書に開示されている構造およびそれらの構造的等価物を含むコンピュータハードウェアで実現されてもよく、またはそれらのうちの１つ以上の組合せで実現されてもよい。本明細書中に記載される主題の実施形態は、１つ以上のコンピュータプログラムとして、すなわちデータ処理装置による実行のために、またはデータ処理装置のオペレーションを制御するために有形の非一時的なプログラムキャリア上で符号化されるコンピュータプログラム命令の１つ以上のモジュールとして実現されてもよい。代替的または付加的には、プログラム命令は、データ処理装置によって実行されるように好適な受信機装置に送信される情報を符号化するために生成される人為的に生成された伝搬信号（たとえば機械によって生成された電気信号、光学信号または電磁気信号）で符号化することができる。コンピュータ記憶媒体は、マシン読取可能なストレージデバイス、マシン読取可能な記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはこれらのうちの１つ以上の組合せであってもよい。
【００９５】
「データ処理装置」という語は、データを処理するためのあらゆる種類の装置、デバイスおよびマシンを包含し、一例として、プログラム可能なプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む。装置はまた、専用論理回路類、たとえばフィールドプログラマブルゲートアレイ（field programmable gate array：ＦＰＧＡ）、特定用途向け集積回路（application-specific integrated circuit：ＡＳＩＣ）であってもよく、またはこれらをさらに含み得る。装置は、任意には、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステムまたはこれらのうち１つ以上の組合せを構成するコード、を含み得る。
【００９６】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプトまたはコードとも称され得るかまたは記載され得る）は、コンパイラ型言語もしくはインタープリタ型言語または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で書込まれてもよく、スタンドアロンのプログラムとして、またはコンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチンまたは他のユニットとして任意の形態で展開されてもよい。コンピュータプログラムは、ファイルシステム内のファイルに対応していてもよいが、必ずしも対応している必要はない。プログラムは、他のプログラムもしくはデータ（たとえばマークアップ言語文書に格納された１つ以上のスクリプト）を保持するファイルの一部に格納されてもよく、当該プログラムに専用の単一のファイルに格納されてもよく、または複数の調整されたファイル（たとえば１つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル）に格納されてもよい。コンピュータプログラムは、１つのコンピュータ上で、または、一箇所に位置するかもしくは複数の箇所にまたがって分散されて通信ネットワークによって相互接続されている複数のコンピュータ上で実行されるように展開されてもよい。
【００９７】
本明細書中に記載されているプロセスおよび論理フローは、入力データ上で動作して出力を生成することによって機能を実行するように１つ以上のコンピュータプログラムを実行する１つ以上のプログラム可能なプロセッサによって実行され得る。また、プロセスおよび論理フローは、特殊用途論理回路、たとえばＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）またはＡＳＩＣ（特殊用途向け集積回路）によって実行されてもよく、装置も、特殊用途論理回路、たとえばＦＰＧＡまたはＡＳＩＣとして実現されてもよい。
【００９８】
コンピュータプログラムの実行に適したコンピュータは、一例として、汎用マイクロプロセッサ、特殊用途マイクロプロセッサもしくはこれら両方を含むか、または、他の任意の種類の中央処理装置を含む。概して、中央処理装置は、リードオンリメモリまたはランダムアクセスメモリまたはそれら両方から命令およびデータを受信するであろう。コンピュータの必須の要素は、命令を実行または実現するための中央処理装置と、命令およびデータを格納するための１つ以上のメモリデバイスとである。一般に、コンピュータは、データを格納するための１つ以上の大容量記憶装置、たとえば磁気ディスク、光磁気ディスクまたは光ディスクも含み、または、当該１つ以上の大容量記憶装置からデータを受信するもしくは当該１つ以上の大容量記憶装置にデータを転送するように、もしくは受信も転送も行なうように動作可能に結合されるであろう。しかし、コンピュータは、このようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば数例を挙げると、携帯電話、パーソナルデジタルアシスタント（personal digital assistant：ＰＤＡ）、携帯型オーディオまたはビデオプレーヤ、ゲームコンソール、グローバル・ポジショニング・システム（Global Positioning System：ＧＰＳ）受信機、またはポータブルストレージデバイス（たとえばユニバーサル・シリアル・バス（universal serial bus：ＵＳＢ）フラッシュドライブ）に組込まれてもよい。
【００９９】
コンピュータプログラム命令およびデータを格納するのに適したコンピュータ読取可能な媒体は、すべての形態の不揮発性メモリ、媒体およびメモリデバイスを含み、一例としてたとえばＥＰＲＯＭ、ＥＥＰＲＯＭおよびフラッシュメモリデバイスといった半導体メモリデバイス、たとえば内蔵ハードディスクまたは取外し可能なディスクといった磁気ディスク、光磁気ディスク、ならびにＣＤ−ＲＯＭディスクおよびＤＶＤ−ＲＯＭディスクを含む。プロセッサおよびメモリは、特殊用途論理回路によって補完されてもよく、または特殊用途論理回路に組込まれてもよい。
【０１００】
ユーザとの対話を提供するために、この明細書中に記載される主題の実施形態は、情報をユーザに表示するための表示装置、たとえば陰極線管（cathode ray tube：ＣＲＴ）、液晶表示（liquid crystal display：ＬＣＤ）モニタと、ユーザがコンピュータに入力することを可能にするキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールとを有するコンピュータ上で実現され得る。ユーザとの対話を提供するために他の種類のデバイスが使用されてもよく、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、聴覚フィードバックまたは触覚フィードバックであってもよく、ユーザからの入力は、音響入力、音声入力または触知入力を含む任意の形態で受信されてもよい。また、コンピュータは、ユーザによって使用されるデバイスに文書を送り、ユーザによって使用されるデバイスから文書を受信することによって、たとえばウェブブラウザから受信された要求に応答してユーザのデバイス上でウェブブラウザにウェブページを送ることによって、ユーザと対話し得る。
【０１０１】
この明細書中に記載される主題の実施形態は、たとえばデータサーバとしてのバックエンドコンポーネントを含むコンピューティングシステムにおいて実現されてもよく、またはミドルウェアコンポーネント、たとえばアプリケーションサーバを含むコンピューティングシステムにおいて実現されてもよく、またはフロントエンドコンポーネント、たとえばユーザが本明細書に記載されている主題の実現例と対話できるようにするグラフィカルユーザインターフェイスもしくはウェブブラウザを有するクライアントコンピュータを含むコンピューティングシステムにおいて実現されてもよく、または１つ以上のこのようなバックエンド、ミドルウェアもしくはフロントエンドコンポーネントの任意の組合せにおいて実現されてもよい。システムの構成要素は、デジタルデータ通信の任意の形態または媒体、たとえば通信ネットワークによって相互接続され得る。通信ネットワークの例としては、ローカルエリアネットワーク（local area network：ＬＡＮ）およびワイドエリアネットワーク（wide area network：ＷＡＮ）、たとえばインターネットが挙げられる。
【０１０２】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、一般に互いから離れており、典型的には通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されて互いに対してクライアント−サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実現例では、サーバは、たとえば、クライアントとして機能するユーザデバイスと対話するユーザにデータを表示して、ユーザデバイスと対話するユーザからユーザ入力を受信する目的で、データ（たとえばＨＴＭＬページ）をユーザデバイスに送信する。ユーザデバイスにおいて生成されたデータ（たとえばユーザ対話の結果）は、サーバにおけるユーザデバイスから受信され得る。
【０１０３】
１つのこのようなタイプのコンピュータの一例が、一般的なコンピュータシステム５００の概略図を示す図５に示される。システム５００は、一実現例に従った、上述の、コンピュータによって実現される方法のいずれかに関連付けて記載された動作のために用いることができる。システム５００は、プロセッサ５１０、メモリ５２０、ストレージデバイス５３０および入出力デバイス５４０を含む。構成要素５１０、５２０、５３０および５４０の各々はシステムバス５５０を用いて相互接続される。プロセッサ５１０は、システム５００内で実行されるべき命令を処理することができる。一実現例においては、プロセッサ５１０はシングルスレット型プロセッサである。別の実現例においては、プロセッサ５１０はマルチスレッド型プロセッサである。プロセッサ５１０は、入出力デバイス５４０上にユーザインターフェイスについての図形情報を表示するためにメモリ５２０内またはストレージデバイス５３０上に格納された命令を処理することができる。
【０１０４】
メモリ５２０は、システム５００内に情報を格納する。一実現例においては、メモリ５２０はコンピュータ読取り可能媒体である。一実現例においては、メモリ５２０は揮発性メモリユニットである。別の実現例においては、メモリ５２０は不揮発性メモリユニットである。
【０１０５】
ストレージデバイス５３０はシステム５００のために大容量記憶装置を提供することができる。一実現例においては、ストレージデバイス５３０はコンピュータ読取り可能媒体である。さまざまな異なる実現例においては、ストレージデバイス５３０は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイスまたはテープデバイスであってもよい。
【０１０６】
入出力デバイス５４０はシステム５００のために入出力操作を与える。一実現例においては、入出力デバイス５４０はキーボードおよび／またはポインティングデバイスを含む。別の実現例においては、入出力デバイス５４０はグラフィカルユーザインターフェイスを表示するためのディスプレイユニットを含む。
【０１０７】
本明細書は多くの具体的な実現例の詳細を含んでいるが、これらは、クレームされ得るものの範囲を限定するものとして解釈されるべきではなく、むしろ特定の実施形態に特有となり得る特徴の説明であると解釈されるべきである。別々の実施形態の文脈において本明細書に記載されている特定の特徴は、単一の実施形態において組合せて実現されてもよい。逆に、単一の実施形態の文脈において記載されているさまざまな特徴は、複数の実施形態において別々に、または任意の好適なサブコンビネーションで実現されてもよい。さらに、特徴は特定の組合せで作用するものとして上述され得るとともに、さらにはそのようなものとして最初にクレームされ得るが、クレームされている組合せからの１つ以上の特徴は、場合によっては、当該組合せから削除されてもよく、クレームされている組合せは、サブコンビネーションまたはサブコンビネーションの変形例に向けられてもよい。
【０１０８】
同様に、動作は特定の順序で図面に示されているが、これは、このような動作が、望ましい結果を達成するために、示されている特定の順序もしくはシーケンシャルな順序で実行されなければならないと理解されるべきではなく、または、望ましい結果を達成するために、すべての示されている動作が実行されなければならないと理解されるべきではない。特定の状況では、マルチタスクおよび並列処理が有利である場合がある。さらに、上述の実施形態におけるさまざまなシステムモジュールおよび構成要素の分離は、すべての実施形態においてこのような分離が必要であると理解されるべきではなく、記載されているプログラム構成要素およびシステムが、一般に単一のソフトウェア製品に一体化されてもよく、または複数のソフトウェア製品にパッケージングされてもよいことが理解されるべきである。
【０１０９】
主題の特定の実施形態が説明されてきた。他の実施形態は添付の特許請求の範囲内である。たとえば、特許請求の範囲に記載されている動作は、異なる順序で実行されて、依然として望ましい結果を達成することができる。一例として、添付の図面に示されているプロセスは、所望の結果を達成するために、必ずしも、図示される特定の順序または連続的順序を必要とするものではない。場合によっては、マルチタスクおよび並列処理が有利であるかもしれない。
【０１１０】
さらなる実現例が以下の例において要約される。
例１：システムであって、データ処理装置と、当該データ処理装置とデータ通信する非一時的なコンピュータ読取り可能記憶媒体とを含み、当該非一時的なコンピュータ読取り可能記憶媒体は、当該データ処理装置によって実行可能な命令を格納しており、当該命令は、実行されると、当該データ処理装置に以下の動作を実行させ、当該以下の動作は、データを処理するようにとの複数の要求の各々ごとに、データを処理するようにとの要求を特定のエンティティのためのクライアントデバイスから受信する動作と、当該要求に応答するためのサイズを決定する動作と、データを処理するようにとの当該複数の要求のセットであって、データを処理するようにとの少なくとも２つ以上の要求を含む当該セットにおける各々の要求であって、当該複数の要求のセットにおける各々の要求は２つ以上のエンティティを含むエンティティのセットにおける１エンティティに対応しており、当該各々の要求ごとに、当該特定のエンティティと当該要求に応答するための当該サイズとを示す帯域幅要求を帯域幅調整システムに提供する動作と、当該要求に応答する際に用いるべき当該特定のエンティティについての割当てを当該帯域幅調整システムから受信する動作と、当該割当て、当該要求に応答するための当該サイズ、および、当該データ処理装置上の当該特定のエンティティについてのトークンの発生量に基づいて、その時点で当該要求に応答すべきかどうかを確率的に判断する動作と、セットのうちの要求の第１のサブセットについて、その時点で当該要求に応答すべきと確率的に判断したことに応じて、当該要求に応答する動作と、セットのうちの要求の第２のサブセットについて、その時点で当該要求に応答すべきでないと確率的に判断したことに応じて、予め定められた期間が経過したかどうかを判断する動作と、当該予め定められた期間が経過したとの判断に応じて、当該要求が応答されないだろうことを示すメッセージを当該クライアントデバイスに送信する動作、または、当該予め定められた期間がまだ経過していないとの判断に応じて、当該トークンの発生量を当該割当ての量だけインクリメントする動作と、その時点で当該要求に応答すべきであるかどうかについての確率的判断を再判断する動作とを含む。
【０１１１】
例２：例１のシステムであって、その時点で当該要求に応答すべきかどうかを確率的に判断する動作は、当該割当て、当該要求に応答するための当該サイズ、当該データ処理装置上の当該特定のエンティティについての当該トークンの発生量、当該データ処理装置についての最大の許可遅延時間、および平均的な帯域幅調整遅延時間に基づいて、その時点で当該要求に応答すべきかどうかを確率的に判断する動作を含む。
【０１１２】
例３：例１または例２のシステムであって、その時点で当該要求に応答すべきかどうかを確率的に判断する動作は、当該割当て、当該要求に応答するための当該サイズ、および、当該データ処理装置上の当該特定のエンティティについての当該トークンの発生量を用いて、当該要求に応答する確率を決定する動作と、乱数を生成する動作と、当該乱数を当該確率と比較して、当該乱数が当該確率よりも大きいかどうかを判断する動作と、当該乱数が当該確率以下であるとの判断に応じて、その時点で当該要求に応答すべきであると判断する動作、または、当該乱数が当該確率よりも大きいとの判断に応じて、その時点で当該要求に応答すべきでないと判断する動作とを含み得る。
【０１１３】
例４：例１から例３のいずれか１つのシステムであって、当該動作は、複数の要求のデータとは異なるデータを処理するようにとの当該複数の要求の第２のセットであって、データを処理するようにとの少なくとも１つ以上の要求を含む当該第２のセットにおける各々の要求ごとに、当該データ処理装置上の当該特定のエンティティについての当該トークンの発生量が当該要求に応答するための当該サイズ未満であるかどうかを判断する動作と、当該データ処理装置上の当該特定のエンティティについての当該トークンの発生量が当該要求に応答するための当該サイズ以上であると判断したことに応じて、当該要求に応答する動作とを含み、当該特定のエンティティと当該要求に応答するための当該サイズとを示す当該割当て要求を当該帯域幅調整システムに提供する動作は、当該データ処理装置上の当該特定のエンティティについての当該トークンの発生量が当該要求に応答するための当該サイズ未満であると判断したことに応じて、行なわれる。
【０１１４】
例５：例４のシステムであって、その時点で当該要求に応答すべきであるかどうかについての確率的判断を再判断する動作は、当該データ処理装置上の当該特定のエンティティについての当該トークンの発生量が当該要求に応答するための当該サイズ未満であるかどうかを判断する動作と、当該データ処理装置上の当該特定のエンティティについての当該トークンの発生量が当該要求に応答するための当該サイズ以上であると判断したことに応じて、当該要求に応答する動作、または、当該データ処理装置上の当該特定のエンティティについての当該トークンの発生量が当該要求に応答するための当該サイズ未満であると判断したことに応じて、その時点で当該要求に応答すべきであるかどうかについての当該確率的判断を実行する動作とを含む。
【０１１５】
例６：例１から例５のいずれか１つのシステムであって、当該動作は、当該トークンの発生量が負の値であるかどうかを判断する動作と、当該特定のエンティティと当該トークンの発生量とを示す更新済みの割当て要求を当該帯域幅調整システムに提供する動作と、更新済みの割当てを当該帯域幅調整システムから受信する動作と、当該トークンの発生量を当該更新済みの割当ての量だけインクリメントする動作とを含む。
【０１１６】
例７：例１から例６のいずれか１つのシステムであって、当該要求に応答する動作は、当該要求に応答するための当該サイズを当該トークンの発生量から差引く動作を含む。
【０１１７】
例８：例１から例７のいずれか１つのシステムであって、当該要求に応答する動作は、当該トークンの発生量と当該要求に応答するための当該サイズとの間の差を示す負債値を決定する動作と、当該負債値が負債限度を上回っているかどうかを判断する動作と、当該負債値が当該負債限度を上回っていないと判断したことに応じて当該要求に応答する動作とを含む。
【０１１８】
例９：例１から例８のいずれか１つのシステムであって、当該データ処理装置は、クラウドコンピューティングシステムにおけるエンドポイントの一部を含む。
【０１１９】
例１０：例１から例９のいずれか１つのシステムであって、当該帯域幅調整システムを含む。
【０１２０】
例１１：例１から例１０のいずれか１つのシステムであって、当該データ処理装置は、各々が当該帯域幅調整システムに割当て要求を送信する複数のデバイスのグループにおける１のデバイスを含み、当該要求に応答する際に用いるべき当該特定のエンティティについての当該割当てを当該帯域幅調整システムから受信する動作は、当該複数のデバイスのグループにおける各々のデバイスから当該帯域幅調整システムによって受信された、当該特定のエンティティについての当該割当て要求を用いて決定された割当てを受信する動作を含む。
【０１２１】
例１２：例１１のシステムであって、当該複数のデバイスのグループにおける当該デバイスの各々に送信された当該特定のエンティティについての当該割当て要求の各々の合計は、当該特定のエンティティについてのバジェットと等しくなる。
【０１２２】
例１３：例１から例１２のいずれか１つのシステムであって、当該動作は、更新済みの割当てを受信する動作を含み、その時点で当該要求に応答すべきかどうかについての当該確率的判断を再判断する動作は、当該更新済みの割当て、当該要求に応答するための当該サイズ、および、当該データ処理装置上の当該特定のエンティティについての当該トークンの発生量を用いて、その時点で当該要求に応答すべきかどうかを確率的に判断する動作を含む。
【０１２３】
例１４：例１から例１３のいずれか１つのシステムであって、当該特定のエンティティについてのデータを処理するようにとの当該要求を受信する動作は、読出し要求または書込み要求のうちの１つを受信する動作を含む。
【０１２４】
例１５：例１から例１４のいずれか１つのシステムであって、当該特定のエンティティについてのデータを処理するようにとの当該要求を受信する動作は、特定のユーザについての要求を受信する動作を含む。
【０１２５】
例１６：例１から例１５のいずれか１つのシステムであって、当該特定のエンティティについてのデータを処理するようにとの当該要求を受信する動作は、特定の企業についての要求を受信する動作を含む。
【０１２６】
例１７：例１から例１６のいずれか１つのシステムであって、当該要求に応答する動作は、当該要求に対する応答を決定する動作と、当該クライアントデバイスに当該応答を提供する動作とを含む。
【０１２７】
例１８：例１から例１７のいずれか１つのシステムであって、その時点で当該要求に応答すべきであるかどうかについての当該確率的判断を再判断する動作は、当該予め定められた期間が経過するまで、その時点で当該要求に応答すべきかどうかについての当該確率的判断を再判断する動作を含む。
【０１２８】
例１９：例１から例１８のいずれか１つのシステムであって、当該複数の要求のセットは、当該複数の要求内の当該要求の各々を含む。
【０１２９】
例２０：例１から例１９のいずれか１つのシステムであって、当該要求に応答するための当該サイズを決定する動作は、当該要求に応答する際に処理されるべきデータのサイズを決定する動作を含み、当該特定のエンティティと当該要求に応答するための当該サイズとを示す当該割当て要求を当該帯域幅調整システムに提供する動作は、当該特定のエンティティと当該要求に応答する際に処理されるべきデータの当該サイズとを示す帯域幅割当て要求を当該帯域幅調整システムに提供する動作を含み、当該要求に応答する際に用いるべき当該特定のエンティティについての当該割当てを当該帯域幅調整システムから受信する動作は、当該要求に応答する際に用いるべき当該特定のエンティティについての帯域幅割当てを当該帯域幅調整システムから受信する動作を含み、当該割当て、当該要求に応答するための当該サイズ、および、当該データ処理装置上の当該特定のエンティティについての当該トークンの発生量に基づいて、その時点で当該要求に応答すべきかどうかを確率的に判断する動作は、当該帯域幅割当て、処理されるべき当該データの当該サイズ、および、当該データ処理装置上の当該特定のエンティティについての当該トークンの発生量に基づいて、その時点で当該要求に応答すべきかどうかを確率的に判断する動作を含む。
【０１３０】
例２１：例１から例２０のいずれか１つのシステムであって、当該要求に応答するための当該サイズを決定する動作は、当該特定のエンティティのために当該データ処理装置を含むエンドポイントによって処理されるべき要求の量を決定する動作を含み、当該特定のエンティティと当該要求に応答するための当該サイズとを示す当該割当て要求を当該帯域幅調整システムに提供する動作は、当該特定のエンティティと、当該特定のエンティティのために当該エンドポイントによって処理されるべき当該要求の量とを示す割当て要求を当該帯域幅調整システムに提供する動作を含み、当該割当て、当該要求に応答するための当該サイズ、および、当該データ処理装置上の当該特定のエンティティについての当該トークンの発生量に基づいて、その時点で当該要求に応答すべきかどうかを確率的に判断する動作は、当該割当て、応答されるべき当該要求についての１の値、および、当該データ処理装置上の当該特定のエンティティについての当該トークンの発生量に基づいて、その時点で当該要求に応答すべきかどうかを確率的に判断する動作を含む。
【０１３１】
例２２：データ処理装置によって実行可能な命令を格納する非一時的なコンピュータ読取り可能記憶媒体であって、前記命令は、実行されると、当該データ処理装置に以下の動作を実行させる。当該以下の動作は、データを処理するようにとの複数の要求の各々ごとに、データを処理するようにとの当該要求を特定のエンティティのためのクライアントデバイスから受信する動作と、当該要求に応答する際に処理されるべきデータのサイズを決定する動作と、データを処理するようにとの当該複数の要求のセットであって、データを処理するようにとの少なくとも２つ以上の要求を含む当該セットにおける各々の要求であって、当該複数の要求のセットにおける各々の要求は２つ以上のエンティティを含むエンティティのセットにおける１エンティティに対応しており、当該各々の要求ごとに、当該特定のエンティティと当該要求に応答する際に処理されるべきデータの当該サイズとを示す帯域幅割当て要求を帯域幅調整システムに提供する動作と、当該要求に応答する際に用いるべき当該特定のエンティティについての帯域幅割当てを当該帯域幅調整システムから受信する動作と、当該帯域幅割当て、処理されるべき当該データの当該サイズ、および、当該データ処理装置上の当該特定のエンティティについての当該トークンの発生量に基づいて、その時点で当該要求に応答すべきかどうかを確率的に判断する動作と、セットのうちの要求の第１のサブセットについて、その時点で当該要求に応答すべきと確率的に判断したことに応じて、当該要求に応答する動作と、セットのうちの要求の第２のサブセットについて、その時点で当該要求に応答すべきでないと確率的に判断したことに応じて、予め定められた期間が経過したかどうかを判断する動作と、当該予め定められた期間が経過したとの判断に応じて、当該要求が応答されないだろうことを示すメッセージを当該クライアントデバイスに送信する動作、または、当該予め定められた期間がまだ経過していないとの判断に応じて、当該トークンの発生量を当該帯域幅割当ての量だけインクリメントする動作と、その時点で当該要求に応答すべきであるかどうかについての当該確率的判断を再判断する動作とを含む。
【０１３２】
例２３：コンピュータによって実現される方法であって、データを処理するようにとの複数の要求の各々ごとに、データを処理するようにとの当該要求を、特定のエンティティのためのクライアントデバイスから、エンドポイントによって受信するステップと、当該特定のエンティティのために当該エンドポイントによって処理されるべき要求の量を決定するステップと、データを処理するようにとの当該複数の要求のセットであって、データを処理するようにとの少なくとも２つ以上の要求を含む当該セットにおける各々の要求であって、当該複数の要求のセットにおける各々の要求は２つ以上のエンティティを含むエンティティのセットにおける１エンティティに対応しており、当該各々の要求ごとに、当該特定のエンティティと、当該特定のエンティティのために当該エンドポイントによって処理されるべき当該要求の量とを示す割当て要求を当該帯域幅調整システムに提供するステップと、当該要求に応答する際に用いるべき当該特定のエンティティについての割当てを当該帯域幅調整システムから受信するステップと、当該割当て、応答されるべき当該要求についての１の値、および、当該データ処理装置上の当該特定のエンティティについてのトークンの発生量に基づいて、その時点で当該要求に応答すべきかどうかを確率的に判断するステップと、セットのうちの要求の第１のサブセットについて、その時点で当該要求に応答すべきと確率的に判断したことに応じて、当該要求に応答するステップと、セットのうちの要求の第２のサブセットについて、その時点で当該要求に応答すべきでないと確率的に判断したことに応じて、予め定められた期間が経過したかどうかを判断するステップと、当該予め定められた期間が経過したとの判断に応じて、当該要求が応答されないだろうことを示すメッセージを当該クライアントデバイスに送信するステップ、または、当該予め定められた期間がまだ経過していないとの判断に応じて、当該トークンの発生量を当該割当ての量だけインクリメントするステップと、その時点で当該要求に応答すべきであるかどうかについての当該確率的判断を再判断するステップとを含む。
【図１】
0006480642.tif 000002
【図２】
0006480642.tif 000003
【図３】
0006480642.tif 000004
【図４】
0006480642.tif 000005
【図５】
0006480642.tif 000006