JP6530471B2 - バーストモード制御 - Google Patents

バーストモード制御 Download PDF

Info

Publication number
JP6530471B2
JP6530471B2 JP2017220600A JP2017220600A JP6530471B2 JP 6530471 B2 JP6530471 B2 JP 6530471B2 JP 2017220600 A JP2017220600 A JP 2017220600A JP 2017220600 A JP2017220600 A JP 2017220600A JP 6530471 B2 JP6530471 B2 JP 6530471B2
Authority
JP
Japan
Prior art keywords
token
work
bucket
tokens
buckets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017220600A
Other languages
English (en)
Other versions
JP2018077852A (ja
Inventor
シャオ,ウェイ
スウィフト,ビョーン・パトリック
ムニスワミー−レディ,キラン−クマール
フィリペ,ミゲル・マスカレニャス
ルー,イージュン
マーシャル,スチュワート・ヘンリー・シーライ
ステファニー,ステファノ
ハミルトン,ジェームズ・アール
Original Assignee
アマゾン・テクノロジーズ・インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/926,697 external-priority patent/US9385956B2/en
Priority claimed from US13/926,694 external-priority patent/US10764185B2/en
Priority claimed from US13/926,686 external-priority patent/US9471393B2/en
Priority claimed from US13/926,708 external-priority patent/US9218221B2/en
Priority claimed from US13/926,684 external-priority patent/US9553821B2/en
Application filed by アマゾン・テクノロジーズ・インコーポレーテッド filed Critical アマゾン・テクノロジーズ・インコーポレーテッド
Publication of JP2018077852A publication Critical patent/JP2018077852A/ja
Application granted granted Critical
Publication of JP6530471B2 publication Critical patent/JP6530471B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/215Flow control; Congestion control using token-bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/525Queue scheduling by attributing bandwidth to queues by redistribution of residual bandwidth

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Description

いくつかの大手テクノロジー組織が、「サービス型ソフトウェア」(software
−as−a−service)を販売するテクノロジーの構築に投資している。このよう
なサービスは、クライアントもしくはサービス利用者に、共有ストレージ(例えば、デー
タベースシステム)及び/またはコンピューティングリソースへのアクセスを提供する。
多層電子商取引システムにおいて、物理または仮想マシン全体、CPU、メモリ、ネット
ワーク帯域、または入出力容量等の異なる種類のリソースの組合せが、サービス利用者及
び/またはサービス利用者のアプリケーションに割当てられうる。
クライアントにサービスを提供するシステムはすべて、システムをオーバーロード状態
にする可能性のある過大な負荷のサービス要求から防御する必要がある。一般にウェブサ
ービスまたはリモートプロシージャコール(RPC)サービスにおいて、システムが受信
した一部のクライアント要求に対し期待される品質を提供できない場合、システムは「オ
ーバーロード」状態であるとみなされる。オーバーロード状態のシステムにより適用され
る共通の解決策には、システムがオーバーロード状態から脱するまで、クライアントに対
しサービスを拒否する、または受信要求を特定の数に制限することが含まれる。
一部の現行のシステムは、要求率を固定または可変グローバル閾値と比較し、要求率が
この閾値を超えると、選択的にクライアントに対しサービスを拒否することで、オーバー
ロードのシナリオを回避する。しかしながら、この手法では、サービスに対する異なる種
類及び/またはインスタンスのサービス要求を受付けることで実行されうる作業量の違い
が考慮されていない。加えて、変動的で予測不能な率で異なる種類の要求を受信し、当該
要求を果たすために必要となる作業量もまた変動的で予測不可能であるシステムにおいて
、有意義な単一のグローバル閾値(まして許容レベルのパフォーマンスを提供する単一の
グローバル閾値等)を定義することは、不可能ではなくとも困難である。数多くのサービ
スが、クライアント要求が時間的に均一に分散している時に最も良く稼働するように設計
されているが、実際にはそのような作業分散における時間的均一性はめったに起こらない
。さらに、少なくともいくつかの環境において、作業量は、時間に関して不均一であるば
かりではなく、操作されるデータセットに関しても不均一でありうる。例えば、一部のデ
ータは、他のデータより頻繁にアクセスまたは修正されうる。高いレベルの顧客満足の達
成及び維持を目指すサービスプロバイダは、より精巧に作業量の変動に対処する技術を実
装する必要があるだろう。
図1aは作業要求到着率の例示的変動を示す図であり、図1bは少なくともいくつかの実施形態による、そのような変動が起こった際トークンバケットを使用して受付制御判断を行いうるシステムを示す図である。 少なくともいくつかの実施形態による、トークンベースの受付制御機構の高次概観図である。 少なくともいくつかの実施形態による、受付制御に使用されるトークンバケットの例示的構成プロパティを示す図である。 少なくともいくつかの実施形態による、プロビジョン能力バケットからバーストモードバケットへの未使用トークンの蓄積の実施例を示す図である。 少なくともいくつかの実施形態による、読出し及び書込みの受付制御のためのそれぞれのトークンバケットの使用を示す図である。 少なくともいくつかの実施形態による、1以上のローカルバースト限度バケットと、1以上の共有リソース能力バケットと、1以上の複製管理バケットとを含むバーストモードトークンバケットセットを示す図である。 少なくともいくつかの実施形態による、受付制御のための作業要求バーストのカテゴリ分類の実施例を示す図である。 少なくともいくつかの実施形態による、バーストモード受付制御のためのピークバーストトークンバケットと持続バーストトークンバケットの組合せを含む複合トークンバケットの使用の実施例を示す図である。 少なくともいくつかの実施形態による、作業処理のそれぞれのカテゴリ専用のピークバースト及び持続バーストバケットの使用を示す図である。 少なくともいくつかの実施形態による、ネットワークアクセス可能なサービスにおいて作業要求に対しトークンベースの受付制御機構を実行するために行われうる処理態様を示すフロー図である。 少なくともいくつかの実施形態による、ネットワークアクセス可能なサービスにおいて複数のバーストモードトークンバケットを使用してバーストモード処理に対処するトークンベースの受付制御機構を実行するために行われうる処理態様を示すフロー図である。 少なくともいくつかの実施形態による、受付制御のために行われうるトークンの消費、補充、及び譲渡処理の態様を示すフロー図である。 少なくともいくつかの実施形態による、受付済作業要求に対応する作業処理が完了した後に、1以上のトークンバケットにおけるトークン数を調整するために行われうる処理態様を示すフロー図である。 少なくともいくつかの実施形態による、管理イベントに応じてバーストモード受付制御パラメータを修正するために行われうる処理態様を示すフロー図である。 少なくともいくつかの実施形態による、トークンベースのバーストモード受付制御に使用されるパラメータを調整するために行われうる処理態様を示すフロー図である。 少なくともいくつかの実施形態による、作業要求到着率の不均一性と共に、サービスにより管理されるデータの異なるサブセットに関する作業要求の例示的不均一分散を示す図である。 少なくともいくつかの実施形態による、データアクセスの空間的不均一性の影響を緩和するために実行されうるトークン共有プロトコルの例示的反復を示す図である。 少なくともいくつかの実施形態による、データパーティションが複製される環境において確立されうるトークン共有ピアグループの実施例を示す図である。 少なくともいくつかの実施形態による、二次インデックスの作業量管理に対応するための、データベースサービスにおけるトークン共有の使用の実施例を示す図である。 図20a〜20dは、少なくともいくつかの実施形態による、トークン共有プロトコルの関与者間の例示的メッセージシーケンスの流れを示す図である。 少なくともいくつかの実施形態による、バーストモード処理のトークン共有に対応するために行われうる処理態様を示すフロー図である。 少なくともいくつかの実施形態による、リソースを共有する作業対象のプロビジョン能力の合計より大きい処理能力限度を有する共有リソースの実施例を示す図である。 少なくともいくつかの実施形態による、サービスのストレージノードにおいて作業対象により共有されうるリソースの実施例を示す図である。 少なくともいくつかの実施形態による、リソースを共有する作業対象に分配する余剰トークンの数を計算するために行われる処理の実施例を示す図である。 少なくともいくつかの実施形態による、リソースを共有する作業対象に余剰トークンの公平分配を実施するために行われうる処理態様を示すフロー図である。 少なくともいくつかの実施形態による、バーストモード処理のために実行されうる価格設定マネジャーの例示的コンポーネントを示す図である。 少なくともいくつかの実施形態による、トークンベースの価格設定ポリシーの例示的要素を示す図である。 少なくともいくつかの実施形態による、バーストモード処理の請求額を決定するために行われうる処理態様を示すフロー図である。 少なくともいくつかの実施形態による、条件付きバーストモード価格設定に関連する処理態様を示すフロー図である。 少なくともいくつかの実施形態による、価格設定ポリシーのクライアント選択を可能にするために実行されうる処理態様を示すフロー図である。 少なくともいくつかの実施形態による、バーストモードトークンのマーケットプレイスを有効にするために実行されうる処理態様を示すフロー図である。 少なくともいくつかの実施形態による、作業対象の異なるパーティション間のトークン譲渡に対して価格設定を行うために実行されうる処理態様を示すフロー図である。 少なくともいくつかの実施形態による、トークンバケットの構成設定の変更に対して価格設定を行うために実行されうる処理態様を示すフロー図である。 少なくともいくつかの実施形態において使用されうる例示的コンピューティングデバイスを示すブロック図である。
本明細書では、実施形態がいくつかの例示的実施形態及び説明図により説明されるが、
実施形態は説明される実施形態または図に限定されないことを当業者は認識するだろう。
図及びその詳細説明には、実施形態を開示された特定の形態に限定する意図はなく、それ
とは逆に、添付の請求項で定義される精神と範囲に属する全ての修正物、均等物及び代替
物を含める意図があることを理解されたい。本明細書で使用される見出しは、本明細書を
構成するためだけのものであり、説明または特許請求の範囲を限定するために用いられる
ことを意図するものではない。本特許出願を通して使用される英単語”may”は、義務
的な意味(すなわち「〜するべきである」という意味)よりむしろ許容的な意味(すなわ
ち「〜する可能性がある」という意味)で使用される。同様に英単語”include”
、”including”及び”includes”は「含む」ことを意味するが、その
対象を限定しない。
トークンバケット及びそれに関連する価格設定ポリシーを使用するバーストモード受付
制御を実施するための方法及び装置の様々な実施形態が説明される。本明細書において「
受付制御」という用語は、受信した作業要求(ストレージサービスに対する読出しまたは
書込み要求等)を実行対象として受付けるか否かを判断するために行われる処理を表すの
に使用され、そして受付制御の実行に関わるソフトウェア及び/またはハードウェアエン
ティティ一式は、集合的に「受付コントローラ」と称されうる。トークンバケットを使用
する受付制御は、例えば、ネットワークアクセス可能なサービス(マルチテナントストレ
ージサービスまたはデータベースサービス等)がプロビジョン作業量モデルに対応する様
々な環境において採用されうる。プロビジョン作業量モデルにおいて、作業要求先の所定
オブジェクトは通常、作業要求に関して、特定の作業要求率(「プロビジョン処理能力」
)まで容認可能な応答時間で対応可能であるように設定または構成されうる。本明細書に
おいて「処理能力」という用語は、所定の率で作業要求を完了するリソース(例えば、ス
トレージオブジェクト、データベーステーブル、またはストレージオブジェクトもしくは
データベーステーブルのパーティション)の能力を表すのに使用される。例えば、ストレ
ージリソースの場合、処理能力は、毎秒の論理的もしくは物理的な読出しもしくは書込み
処理数といった、毎秒の作業処理数等の単位で表現されうる。本明細書において「作業対
象」という用語は、作業要求先のネットワークアクセス可能なサービスにより実行及び/
または管理されるリソースまたはオブジェクトを表すのに使用されうる。少なくともいく
つかの実施形態において、所定の受付コントローラは、複数の作業対象に関して受付判断
を行う責任を担いうる。
一実施形態において、例えば、ネットワークアクセス可能なマルチテナントデータベー
スサービスは、毎秒X回までの読出しまたは書込み処理に対処するように構成されたデー
タベーステーブル(作業対象)を設置しうる(すなわちテーブルのプロビジョン処理能力
は毎秒X処理に設定されうる)。本明細書において「プロビジョン処理能力」及び「プロ
ビジョン能力」という用語は、同義に使用されうる。少なくともいくつかの実施形態にお
いて、該当するクライアントがテーブルの確立と使用に関する支払いにおいて同意すべき
金額は、プロビジョン能力に基づきうる。例えば、作業オブジェクトに関するクライアン
トとのサービスレベル合意の結果、クライアントは、サービスがプロビジョン能力までの
作業要求到着率に対応可能であるべきであると期待するだろう(少なくとも致命的なイベ
ントが起こる等の異常な状況にない場合)。プロビジョン能力に対応可能であるために、
データベースサービスは、テーブルコンテンツの記憶、かつ所望の処理レベル及び応答時
間の対応に十分な記憶容量及び性能を有するストレージデバイスを特定かつ使用し、作業
量の均衡化目的で多数のこのようなデバイスに対しテーブルコンテンツの一部を分配する
等、様々なステップを実行しうる。このような例示的シナリオにおいて、テーブルに対し
プロビジョン処理能力が決定または設定された後(例えば、指定の処理能力を有するテー
ブルの作成を求めるクライアント要求が受付けられた場合、または対応するサービスレベ
ル合意が関係当事者により認められた場合)、当該テーブルに対する読出しまたは書込み
要求が毎秒X要求の要求率以下で到着する限り、データベースサービスは一般に、適切な
応答時間で要求を受付け実行する責任を担いうる。しかしながら、オブジェクトに対する
作業要求がプロビジョン能力より高い率で到着すると、オブジェクトは「バーストモード
」運転で作動していると見なされ、サービスはこのようなバーストモード作業要求を受付
け実行するためにベストエフォートを試みるが、一部のバーストモード作業要求は延期ま
たは拒否されうる。いくつかの実施形態において、所定の作業対象のプロビジョン能力は
、ネットワークアクセス可能なサービスにより管理目的のため内部で使用されうる。例え
ば、作業対象及びその作業量を様々な低次リソース(ストレージデバイスまたはストレー
ジサーバ等)へマッピングするパラメータを特定するのにプロビジョン能力が内部で使用
されうるが、サービスはクライアントに対して当該プロビジョン能力を必ずしも明らかに
しなくてよい。
プロビジョン作業量モデルが採用されるいくつかの実施形態において、リソースの利用
可能処理能力を表すために、論理コンテナすなわち「バケット」に配置された作業トーク
ンが使用され、このようなバケットは従って、所定の作業要求が実行対象として受付けら
れるべきか否かを判断するのに使用されうる。本明細書において「利用可能処理能力」と
いう用語は、現在の作業量を考慮した場合、リソースはどれ位の追加処理能力を提供可能
かを示す推定量または測定量を表すのに使用されうる。例えば、所定のストレージデバイ
スは、毎秒100作業処理(例えば、読出しまたは書込み)のプロビジョン能力を有する
ように構成され、そして所定の秒間、毎秒60処理の作業量に対応しうる。当実施例にお
いて、当該ストレージデバイスの利用可能処理能力は、毎秒(100−60)すなわち4
0処理でありうる。一実装例において、バケットには、プロビジョン能力に相当する毎秒
100トークンが追加(すなわち「補充」)されうる。作業要求が到着すると、プロビジ
ョン能力バケットと称されうるバケットからトークンが消費されうる。例えば60の作業
要求が到着し、60トークンが1秒で消費され、残り40トークンが利用可能処理能力を
表す。作業要求率がプロビジョン能力より高くならない限り、ストレージデバイスは通常
に、すなわち通常モードで作動しているとみなされ、そして通常処理に適用可能なパラメ
ータセットが受付制御のために使用されうる。さらに詳しく後述されるように、作業要求
到着率がプロビジョン処理能力(例えば、当実施例においては毎秒100作業処理)を超
える場合、ストレージデバイスは通常モードとは対照的なバーストモードで作動している
とみなされ、別の受付制御パラメータセットが使用されうる。プロビジョン能力バケット
のトークン集合が使い切られると、バーストモードの間に受付制御に対処するために、1
以上の追加バケット(バーストモードバケットと称される)が使用されうる。例えば特定
の制約内でサービスがバーストモード処理に対しベストエフォート対応を提供できるよう
に、異なる実施形態において、バーストモードバケット(複数可)のトークンを追加し消
費するための数多くの異なる手法が取られうる。所定のリソースの利用可能処理能力(ゆ
えにバーストモード処理に対応する作業量レベル)は、基礎をなすハードウェアもしくは
ソフトウェアの性能、及び/または(負荷均衡の考慮、公平性の考慮、ビジネス/価格設
定の考慮、またはハードウェア/ソフトウェアの本来の性能以外の要因の何らかの組合せ
に基づいて)リソースの処理能力を制御もしくは制限するために実施されるポリシー等、
異なる実施形態における様々な異なる要因の任意の組合せに依存しうることに留意された
い。
一実施形態によれば、作業対象に対する作業要求率が特定レベル(例えば、作業対象の
プロビジョン能力)以下である限り、当該作業対象は通常モードで作動しているとみなさ
れ、そして作業要求率が当該特定レベルを超える場合、バーストモードで作動していると
見なされうる。任意の作業要求が受信されると、作業対象に対応付けられた通常モードト
ークンバケットのトークン集合数が特定されうる。通常モードトークンバケットのトーク
ン集合数が閾値基準を満たす場合(例えば、トークン集合数が1より大きい、またはある
閾値を超える場合)、作業対象は通常モードであるということが受付コントローラに対し
示されうる。従って、このような実施形態において、受付コントローラは作動モードを判
定するために直接到着率を監視する必要がなく、その代りにモード判定のために通常モー
ドトークンバケットのトークン数が使用されるため、受付制御のために到着率を監視する
必要のあるシナリオに関連する受付コントローラの作業量が削減される可能性がある。通
常モードにおいて要求は実行対象として受付けられ、そして1以上のトークンが通常モー
ドバケットから消費されうる。
しかしながら、通常モードバケットのトークン集合数が閾値基準を満たさない場合、作
業対象はバーストモードであるとみなされるか、または作業要求が実行対象として受付け
られた場合に作業対象はバーストモードに突入するだろうという判定が少なくとも下され
うる。よって、受付コントローラはバーストモードトークンバケットセットのうち少なく
とも1つのバケットのトークン集合数を特定しうる。1つまたは複数のバーストモードト
ークンバケットのトークン集合数が第二閾値基準を満たす場合(例えば、バーストモード
トークンバケットが少なくとも1つのトークンを含む場合)、作業要求は実行対象として
受付けられうる。1つまたは複数のバーストモードバケットのトークン集合数は、作業要
求が受付けられると、この事実を反映するために修正されうる。少なくとも一実施形態に
おいて、受付コントローラは、例えば作業要求を完了するまたは満たすために行われる作
業量の見積りに基づいて、及び/またはバーストモード処理に適用可能なトークン消費ポ
リシーに基づいて、バーストモードトークンバケット(複数可)から特定の数のトークン
を消費しうる。作業要求が受付けられた後に、1以上の作業処理(例えば、ストレージオ
ブジェクトまたはデータベースオブジェクトを含む作業対象の場合は読出しまたは書込み
)が当該作業要求に従って開始されうる。
少なくともいくつかの実施形態によれば、通常モードトークンバケットのトークン集合
数により作業対象がバーストモードで作動していることが示されない場合、受付制御には
当該通常モードトークンバケットが単独で使用されうる(例えば、前述のように、受付け
られた各作業要求に対し通常モードトークンバケットからいくつかのトークンが消費され
うる)。従って、少なくともいくつかの実施形態において、通常モードの受付制御処理の
間、バーストモードバケット(複数可)のトークン集合が活用されることはありえない。
いくつかの実施形態においては、通常モード処理の間でも、作業要求が受付けられると、
バーストモードバケット及び通常モードバケットのそれぞれのトークン消費ポリシーに従
って、1以上の通常モードトークンバケットだけでなく1以上のバーストモードバケット
からも、トークンが消費されうる。少なくともいくつかの実施形態において、通常モード
の間でも、適用補充ポリシーに従って、バーストモードバケットにトークンが追加されう
ることに留意されたい。作業対象がバーストモードで作動し、かつ1つまたは複数のバー
ストモードバケットのトークン集合数が第二閾値基準を満たさない場合(例えば、作業要
求を受付けるのに十分なトークンがバーストモードバケットに確認されない場合)、いく
つかの実施形態において、作業要求は拒否、延期、または再試行されうる。少なくともい
くつかの実施形態において、所定の作業要求を受付けるのに十分なトークンが利用不可能
な場合、当該作業要求は、当該作業要求を送信したクライアントに知らせることなく1回
以上(例えば、設定可能な再試行上限回数まで)再試行されうる。作業要求が最終的に受
付けられた場合、当該作業要求を出したクライアントは、当該要求関して通常の総応答時
間よりも長い総応答時間を経験しうるが、当該要求が少なくとも1回拒否されたことには
気付かずにいるだろう。
さらに詳しく後述されるように、通常モードトークンバケット及びバーストモードトー
クンバケットは、様々な時点においてそれぞれの補充ポリシーに従ってトークンが補充さ
れうる。一実施形態において、通常モードトークンバケットは、最大トークン集合数限度
を条件に、作業対象のプロビジョン能力と等しい率で補充されうる。少なくともいくつか
の実施形態において、このような通常モードトークンバケットは、プロビジョン能力トー
クンバケットと称されうる。少なくともいくつかの実施形態において、1以上のバースト
モードトークンバケットは、作業対象のプロビジョン処理能力に比例する率(必ずしも等
しくはない率)で補充されうる。バーストモードバケットの補充率を作業対象のプロビジ
ョン能力と比例するように維持することで、異なる作業対象がそれぞれのプロビジョン能
力に比例するバーストモード作業量に対処することが確実となりうる。例えば、データベ
ースサービスのクライアントC1がプロビジョン能力P1のテーブルT1に対し金額A1
を支払い、かつクライアントC2がプロビジョン能力P2のテーブルT2に対し金額A2
を支払う(P1>P2かつA1>A2)場合、T1に対するバーストモードトークンバケ
ット(複数可)は、T2に対するバーストモードトークンバケット(複数可)より高い率
で補充されうるため、A1>A2であることから期待されるように、T1はT2と比べて
より高い作業要求のバースト率に対応可能である。
いくつかの実施形態において、サービスは異なる種類の作業要求到着率バーストに対し
、異なる受付制御パラメータを使用しうる。例えば、プロビジョン能力毎秒P処理のサー
ビスSにより実行される作業対象Wを考察する。毎秒Pより大きい率の作業要求到着は、
バーストとして分類されうる。しかしながら、全てのバーストが同じ様にサービスSに影
響を与えるとは限らない。例えば、クライアントが作業要求を毎秒100Pの率で送信し
た場合、サービスSが、他のクライアントに悪影響を与える、またはリソースに尽きるこ
となく、要求に対処できるのは、非常に短い時間でしかない。しかしながら、クライアン
トが作業要求を毎秒2Pの率で送信した場合、サービスはより長時間、要求を対処可能で
ある。よって、一実施形態において、到着率における急激で短期のピークに対処するピー
クバーストバケット、及びより低い最大要求率でより長いバーストに対処する持続バース
トバケット等、複数のバーストモードトークンバケットが設定されうる。ピークバースト
トークンバケット及び持続バーストトークンバケットの組合せは、本明細書において「複
合」トークンバケット(もしくは複合バケット)と称されうる。このような実施形態にお
いて、受付コントローラは、作業対象に対する作業要求が実行対象として受付けられるピ
ークバースト率、及びピークバースト率で作業要求が受付けられる最大継続時間を示すピ
ークバースト時間窓サイズを決定しうる。さらに、受付コントローラは、ピークバースト
率より低い持続バースト率、かつピークバースト時間窓サイズより大きい持続バースト時
間窓サイズを決定しうる。持続バースト時間窓サイズは、持続バースト率で作業対象に対
する作業要求が受付けられる最大継続時間を示す。いくつかの実施形態において、時間窓
サイズは一般に、それぞれのバースト率が特定の条件下(例えば、バースト状態の間は補
充なしと仮定する)で対応可能な継続時間を示すが、実際に達成される継続時間は時間窓
サイズに正確には一致し得ない(例えば、バースト状態の間に補充処理が実際行われたた
め)。2つのバーストモードバケットの最大トークン集合数は、それぞれの最大バースト
率に基づいて設定されうる。例えば一実装例において、ピークバーストバケットの最大ト
ークン集合数は、ピークバースト率とピークバースト時間窓サイズの積に設定され、一方
持続バーストバケットの最大トークン集合数は、持続バースト率と持続バースト時間窓サ
イズの積に設定されうる。両バケットはバーストモード処理の間、受付制御のために使用
されうる。例えば、作業対象に対する作業要求を受信したことに応じて、受付コントロー
ラは、ピークバーストトークンバケット及び持続バーストトークンバケットのそれぞれの
トークン集合数に少なくとも部分的に基づいて、作業要求を実行対象として受付けうる。
少なくともいくつかの実施形態において、ピークバーストバケット及び持続バーストバケ
ットに対し、異なる消費率及び/または異なる補充率が適用されうる。
このような実施形態において、複合バケット技術を使用することで、受付コントローラ
は、短時間の非常に高いバースト率、及び長時間のより低いバースト率に対応可能である
。作業対象のプロビジョン能力(pr)が毎秒100処理(100処理/秒)であり、ピ
ークバーストバケットPBBに対応付けられたピークバースト率(pbr)が1000処
理/秒であり、ピークバースト時間窓サイズ(pbw)が6秒であり、持続バースト時間
窓SBBに対応付けられた持続バースト率(sbr)が200処理/秒であり、そして持
続バースト時間窓サイズ(sbw)が60秒である、例示的シナリオを考察する。さらに
、ピークバーストバケットの最大トークン集合数(最大PBB)は、pbrとpbwの積
(1000*6、すなわち6000トークン)に設定され、そして持続バーストバケット
の最大トークン集合数(最大SBB)は、sbrとsbwの積(200*60、すなわち
12000トークン)に設定されると仮定する。時間Tに始まる作業要求のバーストBを
考察する(すなわち、当例示的シナリオにおいては、受付コントローラにより通常モード
バケットは時間Tに通常モード処理を行うのに十分なトークンを有さないと判定されたた
め、バーストモードパラメータが適用される)。説明を簡易にするために、当実施例に関
して、PBBは毎秒200トークンが補充され(最大PBBを上限とする)、かつSBB
は毎秒100トークンが補充され(最大SBBを上限とする)、かつ作業対象はバースト
モード状態のままであると仮定する。各作業要求は1個の実作業処理(例えば、読出しま
たは書込み)に至るとし、そして所定の要求を受付けるために、PBB(ピークバースト
バケット)及びSBB(持続バーストバケット)の各バーストモードバケットから1トー
クンが消費される。PBB及びSBBの両者は時間Tに最大限のトークンを有すると仮定
する。すなわちPBBは6000トークンを有し、SBBは12000トークンを有する
初めに、バーストBが1000要求/秒の要求到着から成るシナリオを考察する。PB
Bは6000トークンで始まり、要求到着により1000トークンが消費され、そしてP
BBの補充ポリシーに従って200トークンが追加されたため、1秒後の時間T+1にP
BBのトークン集合数は(6000−1000+200)、すなわち5200トークンに
なりうる。同様に、時間T+1にSBBのトークン集合数は(12000−1000+1
00)、すなわち11100トークンになりうる。作業要求が1000要求/秒で到着す
る間、続く数秒間の秒毎に、PBBの正味のトークン集合数は800トークン減り、一方
SBBのトークン集合数は900トークン減る。従って、PBBのトークン集合数(集合
(PBB)と称する)及びSBBのトークン集合数(集合(SBB)と称する)は以下の
ように低下する。時間T+2に、集合(PBB)=4400、集合(SBB)=1020
0となり、時間T+3に、集合(PBB)=3600、集合(SBB)=9300となり
、時間T+4に、集合(PBB)=2800、集合(SBB)=8400となり、時間T
+5に、集合(PBB)=2000、集合(SBB)=7500となり、時間T+6に、
集合(PBB)=1200、集合(SBB)=6600となり、時間T+7に、集合(P
BB)=400、集合(SBB)=5700となる。
T+7以降の秒間もバーストBが毎秒1000要求で続くとすると、当実施例において
、PBBはトークンを使い切ることとなり、少なくとも一部の要求は拒否されうる(SB
Bはまだ十分なトークンを有しているにもかかわらず)。このように当実施例において、
毎秒1000要求という高到着率のバーストは、約7、8秒間しか対応できない。
これに対して、バーストBが毎秒200要求から成るシナリオを考察する。PBBは、
毎秒、200トークンが消費され、かつ200トークンが補充され、正味のトークンを損
失しない。SBB(12000トークンで開始)は、毎秒、200トークンが消費され、
かつ100トークンが補充され、100トークンを損失する。よって、SBBを使い尽く
すのに約12000/100=120秒かかるため、200要求/秒のバーストは、約1
20秒間想定されるパラメータ設定で対応可能である。このように当例示的シナリオにお
いて、200要求/秒というより低いバースト率は、1000要求/秒という急激なバー
ストと比べて、より長い時間対応されうる。様々な実施形態において、実際の演算はさら
に複雑でありうる。例えば、通常モードバケットは補充されると活用されるようになるた
めバーストモード到着率は仮定されるように横ばいのままではなく、そして他の要因(異
なる種類の要求に対し異なる数のトークンを必要とする消費ポリシー等)を考慮する必要
があるだろう。
いくつかの実施形態において、それぞれのバーストモードバケットが作業要求の異なる
カテゴリごとに使用されうる。例えば、ストレージサービスまたはデータベースサービス
の環境においては、読出し処理要求のために1以上のバーストモードバケットが保持され
、そして書込み処理要求のために1以上のバーストモードバケットが保持されうる。プロ
ビジョン能力バケットが使用される一実施形態において、特定の時間間隔後にプロビジョ
ン能力バケットの一部のトークンが未使用のままである場合、未使用トークンは「貯蓄さ
れる」、すなわち1以上のバーストモードバケットへ論理的に譲渡され、少なくとも原則
的にクライアントは未使用のプロビジョン能力トークンをバースト状態の間に使用できる
こととなる。いくつかの実施形態において、1以上の共有リソースの処理能力限度を考慮
するために、バーストモードトークンバケットセットが使用されうる。例えば、データベ
ーステーブルのパーティションが、他のテーブルのパーティションも配置される共有スト
レージデバイスに配置される場合、前述のバーストモードバケットを使用することに加え
、共有リソース能力バケットが共有ストレージデバイスの利用可能処理能力を表すのに使
用され、そして作業要求を受付けるために共有リソース能力バケットからもトークンが消
費されうる。いくつかの実施形態において、所定の作業要求を受付けるために消費される
トークンの数は当該要求に必要となる作業の見積りに基づき、そして初期の見積りが不正
確であると判明した場合、実際に行われる作業量が明らかになった時に、様々なバケット
のトークンが消費されうる(または様々なバケットにトークンが追加される)。バースト
モード処理に対するトークンベースの受付制御ポリシーのこれら及び様々な別の態様に関
する詳細が、以下に提供される。
一部の種類のネットワークアクセス可能なストレージ関連サービスの場合、いくつかの
実施形態において、それぞれトークンバケットセットを使って独立して受付制御が行われ
る複数の作業対象に対し、所定のクライアントデータセットが分配されうる。例えばデー
タベースサービスは、N個のパーティションセットを有する大きなテーブルを管理し、所
定のパーティションに対する作業要求を受付けるか否かに関するトークンベースの判断が
、他のパーティションから独立して行われる。このような実施形態において、クライアン
トの作業量の不均一性の問題には、時間的不均一性の特質に加えて、空間的特質も追加さ
れうる。つまり、全てのクライアントデータの合計作業量から考察すると、作業要求が経
時的に不均一に分散している(すなわち、一部の時間帯において作業要求が他の時間帯よ
りはるかに高い率で到着する)だけでなく、作業要求はデータ空間上も不均一に分散して
いる(すなわち、クライアントデータの一部のサブセットは他のクライアントデータのサ
ブセットより頻繁にアクセス及び/または更新される)という場合がありうる。空間的不
均一性を有するいくつかの例示的シナリオにおいて、少なくとも一部の時間帯において、
所定のクライアントC1が所有する1つのデータパーティションP1における利用可能な
トークン数は、同一のクライアントC1が所有する別のデータパーティションP2におけ
る利用可能なトークン数よりはるかに大きいが、作業量に関してはP1よりP2のほうが
はるかに大きいという場合がありうる。全てのクライアントパーティションが一体として
みなされた場合に作業要求拒否を回避するのに十分なトークンが利用可能であるにもかか
わらず、このような事例は、大量にアクセスされるパーティションにおいて作業要求拒否
をもたらしうる。このため、少なくともいくつかの実施形態において、作業対象グループ
におけるトークン共有機構が実行されうる。
トークン共有が実施される一実施形態において、複数の作業対象が、それぞれの受付制
御用のトークンバケットと共に構成されうる。トークン共有プロトコルの反復は、特定の
作業対象WT1においてトークン共有評価基準が満たされたと判断された時に開始される
。つまり、WT1は、1以上の他の作業対象から追加トークンを取得するか、または1以
上の他の作業対象に対しトークンを譲渡するか、どちらを試みる方がWT1にとって有益
であるかを評価するように構成されうる。異なる実施形態において、このような評価を始
めるために異なる基準が使用されうる。例えばいくつかの実施形態において、各作業対象
は、デフォルトで毎X秒または分に一度トークン共有を評価するように構成され、別の実
施形態においては、所定の作業対象は、自身のトークンバケットのあるセットにおけるト
ークン数がある閾値より低く、または別の閾値より高くなった場合に、または作業要求に
対する拒否率が閾値より高くなった場合に、トークン共有を評価するように構成されうる
評価プロセスの一部として、いくつかの実施形態において、作業対象WT1は、あるト
ークンバケットセットに属するトークン集合数情報を交換する第二作業対象WT2を特定
しうる。例えば一実装例において、バーストモードトークンバケットのトークン集合数が
WT1とWT2の間で交換されうる。トークン数の比較に少なくとも一部基づいて、2つ
の作業対象は、いくつかのトークンが共有すなわち譲渡されるべきかを判断しうる。例え
ば、より多いトークンを有する作業対象は譲渡元バケットから、より少ないトークンを有
する作業対象の譲渡先バケットに対し、一部のトークンを提供することに同意しうる。ト
ークンを渡す判断が下されると、譲渡先バケットのトークン集合数は、いくつかのトーク
ンNt分増加し、そして譲渡元バケットのトークン集合数はNt分増加しうる。トークン
が譲渡された後、関与している両作業対象における新たに修正されたトークン集合数を使
って受付制御判断が下されうる。本明細書において、トークン共有プロトコルに関与する
ものは、「トークン共有ピア」と称され、そして当該プロトコルに関与する作業対象グル
ープは、「トークン共有グループ」または「トークン共有ピアグループ」と称されうる。
いくつかの実装例において、トークン共有プロトコルステップ(例えば、プロトコルの評
価ステップ及びトークン共有ステップ)は、例えば、トリガー条件が満たされたことに基
づき、または選択された回数ランダムに、または決定性スケジュールに従って、反復的に
行われうる。少なくともいくつかの実施形態において、異なる作業対象の対が異なる反復
に関与しうる。すなわち、トークン共有ピアグループの全ての作業対象が、所定のプロト
コル反復に関与するわけではない。いくつかの実施形態において、トークン共有プロトコ
ルは、トークン共有グループの作業対象の受付コントローラによって集合的に実行されう
る。
トークン共有グループの構成員は、異なる実施形態におけるいくつかの要因のいずれか
に基づきうる。いくつかの実施形態において、例えばトークンは単一のデータベーステー
ブルのパーティション間でのみ共有されうる。別の実施形態においては、トークンは、同
一のクライアントまたはある協働クライアントセットが所有するテーブルセットの全ての
パーティション間で共有されうる。さらに詳しく後述されるように、非リレーショナルデ
ータベースサービスが派生テーブルを利用する所定のベーステーブルに対して二次インデ
ックスを実装する一実施形態において、トークン共有は、ベーステーブルのパーティショ
ン及び派生テーブル(複数可)のパーティション間で実行されうる。いくつかの実施形態
において、クライアントはトークン共有グループの構成員作業対象を明確に指定可能であ
るが、別の実施形態においては、クライアントではなくサービスがトークン共有構成員を
決定しうる。同様に、トークン共有が使用されるトークンバケットの特定の種類は、異な
る実施形態において異なりうる。例えばいくつかの実施形態において、トークンはバース
トモードトークンバケット間のみの作業対象により共有されるが、別の実施形態において
は、トークンはさらに、または代わりに通常モードバケット間で共有されうる。
異なる作業対象にそれぞれのプロビジョン処理能力が割当てられたいくつかの実施形態
において、異なるクライアントに属するテーブルパーティション等のいくつかの作業対象
は、ストレージデバイス等の単一のリソースを共有しうる。共有されたリソースはそれ自
身の処理能力限度TLを有し、これはリソースを共有する作業対象セットのプロビジョン
能力(PC)の合計より一般的に高くありうる。共有リソースのオーバーロード状態を回
避するために、例えば、作業対象において実施されるネットワークアクセス可能なサービ
スは、作業対象がクライアント作業処理を完了するために依存する共有リソースの処理能
力限度を、作業対象のプロビジョン能力の合計が超えないように、作業対象を構成してい
る。このようなシナリオの作業対象は、「リソース共有グループ」の構成員と称されうる
。このような作業対象はそれぞれ、1以上の通常モードトークンバケット及び1以上のバ
ーストモードトークンバケット等の関連トークンバケットセットを有しうる。
従って、少なくともいくつかの実装例において、共有リソースにより対応可能な最大処
理能力に関して、リソース共有グループのプロビジョン能力の合計と相対する余剰能力の
バッファが保持されうる。つまり、リソース共有グループの全作業対象がこれらの全プロ
ビジョン能力に相当する作業要求を受付けたとしても、共有リソースは追加の負荷に対処
可能である。いくつかの事例において、例えばリソース共有グループの1以上の作業対象
が対処不可能な高い作業要求到着率のバーストに遭遇した場合、いくつかの追加トークン
をリソース共有作業対象に分配(例えば、作業対象のそれぞれのバケット補充ポリシーに
基づいて、作業対象に既に生成されたトークン数に加えて分配)できると便利だろう。追
加トークンは、共有リソースの余剰能力バッファの少なくとも一部を表すものとみなされ
うる。このような「余剰」トークンは、余剰トークンを分配する判断が下される前に必ず
しも任意の所定のバケットに対応付けられるとは限らず、すなわち、少なくともいくつか
の実施形態においては、分配のために新規のトークンが生成されうることに留意されたい
。別の実施形態においては、余剰トークンは、共有リソースの処理能力が明確に示される
バケットに存在しうる。ネットワークアクセス可能なサービスのプロバイダは、このよう
な余剰トークンを分配する際、あるレベルの分配公平性の確保を所望しうる。これにより
、例えば、所定クライアントの作業対象WT1は、同一のリソースを共有する別のクライ
アントの作業対象WT2に余剰トークンが全く提供されない中、全ての余剰トークンを蓄
積することが許可されるという特別待遇を受けない。余剰トークンを分配する際、いくつ
かの異なる公平性関連要因を教慮する必要がありうる。例えば、一実施形態において、余
剰トークンは、作業対象のそれぞれのプロビジョン能力に基づいて、及び/または作業対
象の最近の作業要求到着率に基づいて、作業対象に分配されうる。
前述のように、少なくともいくつかの実施形態によれば、ネットワークアクセス可能な
サービスのいくつかの作業対象(データベースサービスのデータベーステーブルパーティ
ション等)は、受付けた作業要求に応じて共有リソース(共有ストレージデバイス等)を
使用するように構成されうる。このような作業対象はそれぞれ、到着作業要求の受付制御
のために設定された各自のトークンバケットセットを有しうる。すなわち、所定の作業対
象において作業要求を実行対象として受付けるか拒否するかに関する判断は、当該作業対
象の1以上のバケットのトークン集合数に基づいて行われうる。いくつかの実施形態にお
いて、共有リソースに対応付けられたトークン分配器等のサービス管理コンポーネントは
、あるスケジュールに従って開始された各サイクルまたは反復で、または一部のトリガー
条件の検出に基づいて、トークン分配を反復して行うように構成されうる。少なくともい
くつかの実施形態において、トークン分配器は、トークン分配プロトコルの反復に対応す
る所定時間において、リソース共有作業対象のバケットに分配する余剰トークンの合計数
を決定する。合計数は、例えば共有リソースの処理能力限度と作業対象のプロビジョン能
力の総数の差の関数でありうる。
トークンは、異なる実施形態におけるいくつかの要因の組合せに基づいて、作業対象間
に分配されうる。いくつかの実施形態において、異なる作業対象に提供される特定の数の
トークンは、当該作業対象の相対到着率及び相対プロビジョン能力に少なくとも一部基づ
いて、別の関数として計算されうる。リソース共有グループの各作業対象の作業要求到着
率は監視され、そして各継続5分間隔の平均到着率等、経時的な到着率に関するある統計
計量が計算されうる。所定のトークン分配反復に関して、最近のいくつかの間隔における
到着率計量が計算に使用されうる。例えば、所定の5分間トークン分配反復に対し、前の
5分間の到着率の比が考慮されうる、または最近のK個の5分間隔の到着率の比が考慮さ
れうる。トークンの合計数がそこで、到着率の比かつプロビジョン能力の比に基づいて、
1以上の作業対象に分配されうる(例えば、作業対象のそれぞれのバーストモードバケッ
ト等、作業対象の1以上のバケットのトークン集合を増加させることによって)。分配に
より調整されたトークンバケット集合(複数可)は、作業対象における受付制御のために
利用されうる。
少なくともいくつかの事例において、例えば作業対象のプロビジョン能力の合計が共有
リソースにより対応可能なピークの処理能力に近いことが判明した場合、または到着率が
非常に低い場合、分配器は、所定の反復において余剰トークンを全く分配しないと決定し
うることに留意されたい。例えば異なる作業対象において、どれだけ分配機構が作業要求
拒否を削減または回避することに成功しているかに基づいて、時間の経過と共に、トーク
ン分配機構における到着率計量及び/またはプロビジョン能力計量に割当てられた比重が
調整されうる、またはトークン分配を統御する機能が調整されうる。いくつかの実施形態
において、余剰トークンはバーストモードバケットにのみ追加され、一方別の実施形態に
おいては、トークンはさらに、または代わりに、通常モードバケットに追加されうる。い
くつかの実施形態において、作業要求到着率及びプロビジョン能力以外の要因の組合せが
、余剰共有リソース能力の公平な分配のために使用されうる。少なくともいくつかの実装
例において、トークンを分配するか否か、及びいくつのトークンを分配するかを決定する
際、複数の共有リソースの処理能力限度が考慮されうる。
少なくともいくつかの実施形態において、トークンベースの受付制御が使用されるネッ
トワークアクセス可能なサービスを利用するクライアントは、バーストモードの間に行わ
れる処理に対する金額、または今後のバースト時作業量を見越して行われうる処理(トー
クン共有及び余剰トークン分配等)に対する金額とは異なる金額が、通常モード処理に対
して請求されうる。いくつかのこのような実施形態において、通常モードバケット及びバ
ーストモードバケットのそれぞれの価格ポリシーが、トークン消費及び/または譲渡に対
応付けられうる。いくつかの実施形態において、サービスの価格設定マネジャーコンポー
ネントは、様々な条件下における様々なバケットのトークン集合数変更に対応付けられる
価格設定ポリシーを定義し、かつ受付制御と連携して(または一部として)実施する責任
を担いうる。一実施形態において、特定のトークンバケットに適用されるトークン価格設
定ポリシーが特定されうる(例えば、クライアントによって選ばれた価格設定ポリシーに
基づいて、またはサービスの内部構成設定に基づいて)。価格設定ポリシーは、ポリシー
が適用されるトークン集合数変更の種類と、1以上の適用基準(例えば、特定の時間窓の
間のみポリシーが適用されるか否か、またはバーストモード処理の間にいくつかのバケッ
ト集合数が特定の閾値より小さくなった時のみポリシーが適用されるか否か)と、トーク
ン集合数に対する特定の変更に関しクライアントに請求する価格を計算するのに使用され
うる式または関数とを定義する。いくつかの実施形態において、クライアントは、トーク
ン集合数変更の異なるカテゴリに対して異なる金額が請求されうる。例えば一事例におい
て、クライアントは、特定のバーストモードバケットB1から任意のトークンを消費した
場合にある料金が請求され、そしてバケットB2からバケットB1へトークンが譲渡され
た場合には別の料金が請求される。少なくとも一実施形態において、クライアントは、い
くつの(そしてどの種類の)トークンバケットが受付制御に使用されたかに基づいて、異
なる金額が請求されうる。例えば、複合トークンバケットを使って多種類のバーストモー
ド様態に対応することを所望するクライアントは、より少ないバーストモードバケットを
使用するより単純な技術を利用する意思のクライアントより、多く請求されうる。価格設
定マネジャーは、様々なトークンバケットの集合数に対する変更を、経時的に、例えばバ
ーストモード処理の様々な時間帯において、記録しうる。クライアントの請求額は、記録
された集合数の変更に基づいて作成されうる。
少なくとも一実施形態において、ネットワークアクセス可能なサービスは、例えば、ク
ライアントがバーストモード及び/または通常モード作動中に受付制御に使用可能なトー
クンを売る、買う、または交換するために利用しうるプログラム的インターフェイス(1
以上のウェブページ、ウェブサイト、グラフィカルユーザインターフェイス、コマンドラ
インツール、及び/またはAPI等)を実装することで、トークンマーケットプレイスを
実現しうる。いくつかのこのようなマーケットプレイスにおいて、例えば、所定の先の時
間帯において自身のトークンの一部は使用されないであろうことを認識しているクライア
ントは、オークション機構を使用した入札のためにトークンの可給性を宣伝しうる。当初
の予測よりも多い作業量(ゆえに自身の作業対象のプロビジョン能力より多い作業量)に
対応する必要のある別のクライアントは、トークンに対して入札し、(入札が成功した場
合)売り手からトークンを購入しうる。少なくともいくつかの実施形態において、ネット
ワークアクセス可能なサービスの価格設定マネジャー及び/または他のコンポーネントは
、このようなオークション及び他のマーケットプレイスの取引を簡易化し、トークン譲渡
及び価格の経過を記録し、そしてマーケットプレイスの取引をクライアントに対し作成さ
れた請求額に適切に取入れうる。価格マネジャー及び関連コンポーネントの機能性の様々
な態様に関する追加詳細もまた以下に提供される。
例示的システム環境
図1aは作業要求到着率の例示的変動を示す図であり、図1bは少なくともいくつかの
実施形態による、そのような変動が起こった際トークンバケットを使用して受付制御判断
を行いうるシステムを示す図である。図1aにおいて、X軸は時間を表し、Y軸はネット
ワークアクセス可能なサービスのストレージオブジェクトまたはデータベーステーブル等
の作業対象に対する作業要求の到着率110を表す。所定の作業要求により、要求クライ
アントが作業対象に関連する特定の論理処理または物理処理のセットの実行を所望するこ
とが示されうる。例えば、単一の作業要求は、作業対象の一部に対する1以上の読出し処
理、1以上の修正処理、一連の計算、作業待ち行列への挿入または作業待ち行列からの除
去、またはこのような処理の何らかの組合せに変換されうる。少なくともいくつかの実施
形態において、クライアントが作業要求において比較的高い次元の論理処理を示すと、作
業対象を実行するサービスは、作業要求が受付けられた場合に実行する必要がありうる低
次の物理処理または論理処理のある該当セットを特定する責任を担いうる。図1a及び1
bは、作業対象における平均的または典型的なカテゴリの作業要求の到着率及び受付制御
を例示する。さらに詳しく後述されるように、一般に到着率は作業要求の異なるカテゴリ
に関して個別にプロットされ、そして異なる作業要求カテゴリに対してそれぞれの受付制
御パラメータが使用されうる。図1aにおいて、作業対象のプロビジョン能力112(画
一のまたは平均的な作業要求と仮定する)が、Y軸に「pr」で交わる水平線により表さ
れる。図1aのように、到着率は一連の時間間隔にわたって監視されうる(例えば、到着
する作業要求の数が毎秒測定され、そして要求数/秒がグラフに描かれうる)。表される
ように、作業要求の到着率は時間と共に変化する。一部の時間帯において、到着率がプロ
ビジョン能力prより少ないと、通常期N1、N2、及びN3等のこれらの時間帯におい
て作業対象は通常モードであるとみなされる。バースト期B1及びB2等、到着率がpr
を超える間、作業対象はバーストモードで作動しているとみなされうる。
いくつかの実施形態において、ネットワークアクセス可能なサービスは、prまでの作
業要求率に対応する義務がありうる(例えば、サービスレベル合意により契約上義務があ
りうる)。図1bに示されるように、サービスの受付コントローラ180は、通常モード
の間、受付制御を判断する1以上のバケットを含む通常モードトークンバケットセット1
20を使用するように構成されうる。受付コントローラ180は、バーストモードの間、
通常モードバケットに適用されるパラメータセットとは異なるパラメータセットが適用さ
れた1以上の受付制御用のトークンバケットを含むバーストモードトークンバケットセッ
ト125を使用するように構成されうる。少なくとも一実施形態において、作業要求17
0が受信されると、受付コントローラは初めに通常モードバケットのトークン集合数を特
定しうる。通常モードバケットのトークン集合数が閾値より小さい場合(例えば、作業要
求170を受付けることで消費されるトークン数Nより小さい場合)、受付コントローラ
は、作業対象102がバーストモードにある、または作業要求170が実行対象として受
付けられた場合には、作業対象102がバーストモードに入るだろうと断定しうる。
例えば通常モードバケットセットを使用して、バーストモードパラメータを適用すると
決定した際、描写された実施形態において、受付コントローラ180は、バーストモード
トークンセット125のうち少なくとも1つのバケットのトークン集合数を特定しうる。
トークン集合数が特定の基準を満たす場合、例えば少なくとも1つのバーストモードトー
クンバケットにおいてNトークンが利用可能である場合、作業要求170が実行対象とし
て受付けられ、そして受付済作業要求に対応する1以上の処理179が開始されうる。バ
ーストモードバケットセット125のトークン集合数が特定の基準を満たさない場合、矢
印189により示されるように、作業要求170は拒否されうる。様々な実施形態におい
て、通常モードバケットセット120及びバーストモードバケットセット125の各トー
クンバケットに対し、各自のパラメータ及びポリシーのセットが適用されうる。例えば、
異なるバケットは、異なるトークン消費ポリシー(様々な状況において消費されるトーク
ン数を示す)、及び異なるトークン補充ポリシー(トークンが追加される状況、及び毎秒
追加されるトークン数を示す)を有しうる。描写された実施形態において、一般にサービ
ス及び受付コントローラ180は、通常モード処理に対応し、そしてバーストモード処理
の間、クライアント要求を受付け完了するためにベストエフォートを行う義務がありうる
作業対象がそれぞれの定義されたプロビジョン処理能力を必ずしも有さないいくつかの
実施形態において、例えば、サービスレベル合意により、サービスプロバイダが、一部ま
たは全ての作業対象に関して明確に指定されたある処理能力レベルに対応する義務を負わ
ないいくつかの実施形態において、受付制御のためにトークンバケットを使用する前述の
ような技術が使用されうることに留意されたい。例えば一実施形態において、サービスプ
ロバイダは、作業要求到着率が毎秒R処理を超えると必ずバーストモードが起こると簡潔
に定義し、受付制御のためにバーストモードトークンバケットをこのような条件下で使用
しうる。従って、異なる実施形態において、作業対象がバーストモードにあるか否かの判
断を行うために取られる手法が異なりうる。いくつかの事例においては、プロビジョン処
理能力が通常モードとバーストモードの間の境界線を定義するが、別の実施形態において
は、他のバーストモードの定義が使用されうる。
トークンベースの受付制御の概要
図2は、少なくともいくつかの実施形態による、トークンベースの受付制御機構の高次
概観図である。トークンを含む単一のバケット202を使用する機構が、簡潔な説明のた
めに示される。前述のように、いくつかの実施形態において、通常モード受付制御用の1
以上のバケット、及びバーストモード受付制御用の1以上のバケット等、複数のバケット
の組合せが使用されうる。当該機構によれば、データオブジェクト、オブジェクトパーテ
ィション、またはパーティションレプリカ等の特定の作業対象102に関連する受付制御
目的のために設定されたバケット202(例えば、少なくともいくつかの実施形態におい
て、ソフトウェアプログラム内にデータ構造として実装されうる論理コンテナ)には、矢
印204Aにより示されるように、バケット初期化中にトークン208の初期セットが追
加されうる。初期集合数は、例えば、作業量の予測、サービスレベル合意、該当するデー
タオブジェクトを所有または管理するクライアントにより指定されたプロビジョニング予
算、または様々な実施形態におけるこのような要因の何らかの組合せに基づいて、決定さ
れうる。いくつかの実施形態において、一部の種類のバケットに対し、初期集合数はゼロ
に設定されうる。いくつかの実装例においては、少なくとも1つのバケットの初期集合数
は、当該バケットに設定された最大集合数に設定されうる。
描写された実施形態において、新規の作業要求170(ストレージオブジェクトまたは
データベースオブジェクトの場合は、読出し要求または書込み要求等)の指示が受付コン
トローラ180に受信されると、受付コントローラは、N個のトークン(Nは1以上であ
り、実行内容または構成パラメータに依存する)がバケット202に存在するか否か判断
を試みうる。その数のトークンが当該バケットにおいて利用可能な場合、作業要求170
は実行対象として受付または許可され、そして当該バケットからトークンが消費または除
去されうる(矢印210)。Nトークンが存在しなければ、作業要求170は拒否されう
る。例示的実施例において、作業要求170Aは受付けられ、作業要求170Bは拒否さ
れ、そして作業要求170C、170D、及び170Eは受付コントローラ180により
まだ検討されていない。
図3を参照して後述するように、バケット202は、矢印204Bにより示されるよう
に、バケットに対応付けられた補充率等の構成パラメータに基づいて経時的に補充または
再追加もされうる。いくつかの実装例において、トークン補充処理は消費処理と同時に起
こりうる、または時間的に近接して行われうる。例えば、単一のソフトウェアのルーチン
内で、要求を受付けることでNトークンが消費され、そして補充率及び前回バケットが補
充されてから経過した時間に基づいてMトークンが追加されうる。同様に後述されるよう
に、いくつかのシナリオにおいて、いくつかのバケットはまた、他のバケットの未使用の
トークンの数に基づいて追加されうる。いくつかの実施形態において、例えば構成パラメ
ータを使用して、バケットが保持してもよいトークン最大数、及び/またはトークン最小
数が制限されうる。異なる実施形態において、特に所定のオブジェクトまたはリソースに
対し受付を制御するために多数のバケットが一緒に使用された時に、構成パラメータ設定
の様々な組合せを利用して、かなり高度な受付制御スキームが実行されうる。
単純な一例示的シナリオにおいて、毎秒100作業要求という安定した負荷に対応する
ために、図2のバケット202は、初期集合数が100トークン、最大許容集合数が10
0トークン、そして最小許容集合数がゼロトークンに設定されうる。Nは1に設定され、
そして補充率は毎秒100トークンに設定され、10ミリ秒毎に一度、1トークンが補充
目的で追加されうる(最大集合数制限を超えないという前提)。作業要求170が到着す
ると、各作業要求に1トークンが消費されうる。各秒均一に分散した毎秒100作業要求
という定常作業量が適用される場合、補充率及び作業量到着率は釣り合いうる。いくつか
の実施形態において、上記のバケットパラメータを考慮した場合、このような定常作業量
は無期限に対応されうる。
上記の実施例を拡張させて、到着率及び/または補充率が均一でないとすると、一部の
(一般に短い)時間間隔においてバケット202が空の状態になるシナリオが起こりうる
(例えば、ある急速に連続した作業要求のセットにより、補充機構が元に戻すことのでき
るトークン数より多くのトークンが消費される場合)。このような事例において、単一の
バケット202のみが受付制御に使用されている場合、到着する作業要求は拒否されうる
(または延期後再試行されうる)。作業量の時間的不均一性に対処するために、図1bを
参照して説明されたように、追加バーストモードトークンバケットの使用等、異なる実施
形態において様々な技術が使用される。
図3は、少なくともいくつかの実施形態による、様々な種類の受付制御ポリシーを実施
するのに使用されうるバケット202等のトークンバケットの例示的構成プロパティ30
2を示す図である。いくつかの実装例において、トークンバケットは、受付コントローラ
180のインメモリデータ構造として実装され、必要に応じ永続的ストレージに書込まれ
うる。このようなデータ構造は、現在のトークン集合数、集合数が最後に修正された時間
、及び/または図3に示される様々なパラメータ及びポリシーの値を表すフィールドを備
えうる。
トークン消費ポリシー310により、受付制御ためのトークン消費方法が示されうる。
いくつかの実施形態において、消費ポリシー310は、異なる受付前ポリシー及び受付後
ポリシーを含み、及び/または他のバケットの状態もしくは作業対象の作動モードに依存
しうる。例えば、一実施形態において、プロビジョン能力バケットPB(例えば、通常モ
ードバケットセット120内)及びバーストモードバケットBB(例えば、バーストモー
ドバケットセット125内)の、2つのバケットが所定の作業対象に対する受付制御に使
用されうる。当実施例において実施されている受付前ポリシーに従って、新規の要求を許
可するために、PBの集合数がチェックされ、少なくとも1トークンが存在するか否かが
判定される。そして要求が許可された場合、受付後ポリシーに従って、PBの集合数は1
つ削減されうる。PBがトークンを有する場合、要求を許可する前にBBの集合数はチェ
ックされなくてもよい。しかしながら、要求が受付けられると、いくつかの実施形態にお
いて実施されている受付後ポリシーに従って、1トークンがBBからもなお消費されうる
。実施例を続けると、これとは対照的にPBがトークンを全く有していない場合、作業対
象はバーストモードにあるとみなされ、BBの集合数がチェックされ、BBが少なくとも
1トークンを有するか否かが判定されうる。バーストモードの間、BBが利用可能なトー
クンを有する時のみ要求は許可され、要求が許可されると、BBからトークンが消費され
うる。(いくつかの実装例においては、バーストモードの間に、要求受付の際にPBのト
ークン集合数も削減され、これによりPBの集合数がマイナスになる可能性がある。)い
くつかの実施形態において、所定のバケットから、当該バケットの消費ポリシーに基づい
て、異なる数のトークンが異なる種類の処理に対し消費されうる。いくつかの実施形態に
おいて、トークン消費ポリシーはまた、該当するデータオブジェクトがしばらく前から作
業要求の対象ではなくなった場合、バケットからトークンが削除されるべきか否か(及び
その消費率)を示す遊休中崩壊パラメータ、または、ある時間間隔においてトークンが使
用されなかった場合、1つのバケットから別のバケットへトークンを譲渡すべきか否かを
示す遊休時譲渡パラメータを指定しうる。一実施形態において、老朽ポリシーは、特定の
時間間隔に消費されなかったトークンを消費するために使用されうる。例えば、各トーク
ンは有効期間に対応付けられ、この期間を過ぎるとトークンは受付制御目的に使用できな
くなる。本明細書において、所定のカテゴリのバケットに適用可能なトークンポリシー(
及び後述されるような様々な他のポリシー)は、カテゴリに基づいた名称により特定され
うる。例えば、通常モードバケットに適用可能な消費ポリシーは通常モード消費ポリシー
と称され、そしてバーストモードバケットに適用可能な消費ポリシーはバーストモード消
費ポリシーと称されうる。
描写された実施形態において、プロパティ302は、開始時または初期化時にバケット
内に配置されるトークン数を示す初期トークン集合数パラメータ306を含みうる。トー
クン補充ポリシーパラメータ314は、例えばバケットに対応付けられた作業対象に設定
された作業率を維持するのを支持するために、バケットにトークンが追加される率、及び
/またはバケットにトークンが追加される状況を示しうる。いくつかの実施形態において
、バケットの1以上のパラメータは時間と共に変更されうる。例えば、デフォルトの補充
率がバケットに適用されるが、特定の条件下では非デフォルト率が使用されうる。最大集
合数パラメータ318はバケットの最大能力を示し、そして最小集合数パラメータ322
はバケットの集合数の下限を示しうる。いくつかの実装例において、一部の状況下でバケ
ットの集合数は、マイナスになるとみなされうる(例えば、最小集合数はゼロ未満になり
うる)。例えば、作業対象が読出し及び書込み等の入出力処理に対応する一実施形態にお
いて、受付コントローラ180は、簡潔化のため、受信クライアント要求はそれぞれおよ
そ1個の実入出力処理に至ると推測または推定しうる。しかしながら、処理要求Rを受付
けた後、いくつかの事例においてRを許可した結果必要となる実作業量は、推測した1入
出力処理よりも実質的に大きくありうる。例えば、1読出し処理で遂行されると予測した
読出し要求は、最終的に1000読出し処理を要するテーブル走査処理になりうる。この
ようなシナリオにおいて、予期せぬ追加作業の影響がその後の受付制御判断に確実に反映
されるように、追加作業に対応するある数のトークン(例えば、1000−1=999ト
ークン)がバケットから差し引かれ、当該バケットのトークン数は少なくとも一時的にマ
イナスになりうる。トークン数は、例えばバケットの補充率及び受信要求率に基づいて、
最終的にはプラスに戻りうる。トークン不足ポリシーパラメータ324は、トークン不足
(すなわちマイナス集合数)が許容される状況、不足状態が許容される時間の長さ、不足
から回復するために取られるべき処置等に関する規則を指定しうる。いくつかの実施形態
において、異なる種類の処理は異なる受付制御規則を有し、そしてバケットが使用される
処理の種類は、適用処理種類パラメータ326において指定されうる。少なくともいくつ
かの実施形態において、バケットのトークンの使用に関してクライアントに請求する金額
を決定するために使用されうる1以上の価格設定ポリシー328が、バケットプロパティ
内に示されうる。価格設定ポリシー328が含みうる例示的要素の種類は、図17に示さ
れ、さらに詳しく後述される。異なる実施形態においては、図3に示される例示的パラメ
ータのサブセットのみが使用され、一方別の実施形態においては、図3に示されるパラメ
ータ以上の追加バケット構成パラメータが使用されうる。少なくともいくつかの実施形態
において、図3に示される様々なプロパティの値及び/または設定は、バーストモード作
動に対応するか否かといった他の受付制御設定と同様に、プログラムで設定または修正さ
れうる(例えばウェブサービスコールを使用して)。
未使用トークンの貯蓄
いくつかの実施形態において、適用補充率に従って、定期的に、または作業要求に対す
る受付制御判断の完了または開始等のトリガーイベントに応じて、所定のトークンバケッ
トにトークンが補充されうる(すなわちバケットにトークンが追加されうる)。このよう
な実施形態において、例えば前の時間間隔において作業要求が平均的にプロビジョン能力
より低い率で到着したため、通常モードトークンバケットが、補充される時点でいくつか
の未使用トークンを有する場合がありうる。一実施形態において、1以上のバケットから
の未使用トークンは、例えばバースト時に後ほど使用できるように、1以上の他のトーク
ンバケットに貯蓄または蓄積されうる。図4は、少なくともいくつかの実施形態による、
プロビジョン能力バケットからバーストバケットへ未使用トークンの蓄積の実施例を示す
図である。
図4に描写された実施形態において、通常モードバケットセット120は、最大トーク
ン集合数Mが設定されたプロビジョン能力バケット420を備え、一方バーストモードト
ークンバケットセット125は、M以上の最大トークン集合数Bが設定されたバーストモ
ードバケット422を備える。矢印452で示されるように、プロビジョン能力バケット
420は、最大集合数Mを条件に、プロビジョン能力prと等しい率で補充される。従っ
て、例えばprが100処理/秒、M=100、かつ毎秒一度補充処理が行われる場合、
毎秒最大100トークンがバケット420に追加されうる。矢印454で示されるように
、受信した作業量要求に基づいた率で、バケット420からトークンが消費されうる。2
つの時点、T1及びT2(T2はT1の1秒後)を考察する。T1の時点でバケット42
0は100トークンを有し、そして次の秒の間にそのうちの75トークンが、受信作業要
求170に関連する受付制御処理に消費されたと仮定する。当実施例シナリオにおいて、
T2の時点でバケット420はまだ25未使用トークンを有する。
描写された実施形態において、矢印460で示されるように、このような未使用トーク
ンはバーストモードバケット422に蓄積されうる。実施例を続けると、従ってT2の時
点で25トークンがバケット422に追加されうる。さらに、描写された実施形態におい
て、矢印456で示されるように、トークンは、プロビジョン率prの関数でもありうる
バケット422の補充率で(最大集合数限度Bを条件に)バケット422に追加されうる
。バーストモード処理の間、作業要求の到着率に基づいた率で、バケット422からトー
クンが消費されうる。図4の矢印458で示されるように、少なくともいくつかの実施形
態において、作動モードに関係なく、作業要求の到着率に基づいて、バケット422から
トークンが消費されうる。例えば、作業要求が実行対象として受付けられる度に、通常モ
ードバケット420からいくつかのトークンが消費され、そしてバーストモードバケット
422からいくつかのトークンが消費されうる。いくつかの実施形態において、到着率に
関係なく、かつ他の受付制御設定に関係なく、作業対象に使用されるコンピューティング
デバイスのハードウェア及び/またはソフトウェアの限度に基づく所定の最大対応可能率
より高い率では、作業要求を受付けられないことに留意されたい。このような最大限度は
、例えば、コンピューティングデバイスに対応能力を超えるストレスが加わっている場合
、コンピューティングデバイス上のデータが壊れないように守るために設定されうる。
図4に描写された実施形態において、バーストモードバケット422の集合数は、バケ
ット420においてますます多くのトークンが未使用になるにつれ、経時的に増加する(
最大集合数限度B、及び受付済作業要求に対するバーストモードトークンの消費を条件と
して)。これにより受付コントローラ180は、バケット422の補充率のみがバケット
422の集合数に貢献している時に対処可能なバーストよりも、大きいバーストに対処可
能になる。未使用トークンを後ほど使用するために貯蓄するこのような技術は、クライア
ントがプロビジョン能力だけでなくバーストモード処理に関しても請求される実施形態に
おいて、バケット間で未使用トークンを物理的に譲渡することでクライアントが全体の費
用を削減できるため、特に役立つ。いくつかの実施形態において、同様の種類の未使用ト
ークンの譲渡もまた、他の譲渡元及び譲渡先バケットペアにより対応されうる。例えば、
個別のトークンバケットが作業要求のそれぞれのカテゴリに対し保持され、そして特定カ
テゴリC1用のバケットから未使用トークンが別のカテゴリC2用のバケットへ譲渡され
うる。
特定の種類の処理用のトークンバケット
いくつかの実施形態において、所定の作業対象は、異なるカテゴリの処理の作業要求に
対応しうる。例えば、一実施形態において、データベーステーブルは読出し及び書込み処
理に対応する。「書込み処理」または「書込み」という用語は、データベーステーブル、
ファイル、または値等のオブジェクトのデータ及び/またはメタデータに、例えば作成(
新規または追加データの書込み)、更新(インプレース上書きまたは例えば一部のライト
ワンス環境においてデータの新バージョンの作成を伴う既存のデータへの変更)、削除、
名前の変更、及び/または移動を含む修正が行われる処理を指しうる。「読出し処理」ま
たは「読出し」という用語は、修正を伴わない処理を指しうる。書込み要求に応えるため
に必要となる総作業量は、読出し要求に応えるために必要となる作業量とは異なりうる。
例えば、いくつかの実施形態において、所定のデータベーステーブルまたはテーブルパー
ティションの多数のレプリカが保持されるため、書込み作業要求が完了したとみなされる
には、複数のレプリカにおいて書込みを完了する必要があり、これに対して読出し要求は
たった1つのレプリカにのみアクセスすることが求められうる。いくつかの実装例におい
て、書込み処理はログをとる必要があり、またはインデックス変更等の他の副作用を有し
うる。しかし読出し処理にこれらは必要ないだろう。その結果、所定作業対象における読
出し処理能力は、その書込み処理能力と異なりうる。従って、受付制御判断に関して、読
出しと書込みの扱いは異なりうる。図5は、少なくともいくつかの実施形態による、読出
し及び書込みの受付制御のためのそれぞれのトークンバケットの使用を示す図である。
描写された実施形態において示されるように、通常モードバケットセット120は、読
出しプロビジョン能力バケット502と、別の書込みプロビジョン能力バケット504と
を備える。バーストモードバケットセット125は、読出しバーストバケット506と、
書込みバーストバケット508とを備える。作業要求が到着すると、受付コントローラは
、作業要求が読出しであるか書込みであるか判定し、そして該当する種類のバケットのト
ークン集合を使用して、(a)当該作業要求を受付けると通常モード作動になるか、バー
ストモード作動になるか、そして(b)当該作業要求を受付けるのに、適切なバケットに
おいて消費に十分なトークンが利用可能であるか否か、を判定しうる。描写された実施形
態において、読出しバケットにおけるトークンの消費及び/または補充は、書込みバケッ
トにおける消費及び/または補充から独立しており、そして図3に描写された一部または
全てのプロパティ及びポリシーは、各種類のバケットに対し独立して設定されうる。従っ
て、所定の時点において、作業対象は、読出しに関して通常モードで、書込みに関してバ
ーストモードである、またはその逆(すなわち、書込みに関して通常モードで、読出しに
関してバーストモード)である場合がありうる。作業対象はまた、読出し及び書込みの両
方に関して通常モードでありうる、または読出し及び書込みの両方に関してバーストモー
ドでありうる。いくつかの実施形態において、未使用のトークンは、読出しバケットから
書込みバケットへ、またはその反対に譲渡されうる。例えば、図5に描写された実施形態
において、時間間隔の終わりに書込みバーストバケット508にいくつかのトークンが未
使用のまま残っている時、該当する数のトークンは、読出しバーストバケット506の集
合数が閾値を下回る場合に、読出しバーストバケット506へ追加されうる。
共有リソース及び複製管理
いくつかの実施形態において、各作業対象に対し、図4及び5に示される種類のバース
トモードトークンバケットのそれぞれのセットが確立されうる。少なくともいくつかの実
施形態において、データベーステーブルまたはテーブルパーティション等の所定の作業対
象は、他の作業対象により共有される少なくともいくつかのリソースを使用しうる。例え
ば、テーブルTable1の一部は、テーブルTable2の一部と同じストレージデバ
イス上に配置されうる。受付制御判断を下す際、作業対象を実行するネットワークアクセ
ス可能なサービスは、共有リソースの能力も考慮に入れる必要がありうる。例えば、一実
装例において、所定のストレージデバイスは毎秒N読出し処理以下に対処可能であり、そ
して当該ストレージデバイスが2つの異なる作業対象WT1とWT2に使用される場合、
1つの対象(WT1)の利用可能読出し処理能力は、もう片方の対象(WT2)の読出し
作業量に影響されうる。いくつかの実施形態において、多数の作業対象により共有される
リソースの利用可能処理能力が、自身のトークン集合数により表される共有リソースバケ
ットは、各作業対象におけるバーストモード受付制御判断に使用されうる。後述されるよ
うに、作業対象の多数のレプリカが保持される実施形態において、特定の種類の作業要求
(書込み処理につながる要求等)に対し、複製管理に対応付けられた1以上のバケットも
使用されうる。いくつかの実施形態において、複製管理バケットは、いくつかの種類の作
業要求の受付制御にのみ使用されうる。例えば、このような実施形態において、これらの
複製管理バケットは書込みに使用され、読出しには使用されない。図6は、少なくともい
くつかの実施形態による、1以上のローカルバースト限度バケット604と、1以上の共
有リソース能力バケット606と、1以上の複製管理バケット608とを含むバーストモ
ードトークンバケットセットを示す図である。
図6に示される三種類のバーストモードトークンバケットは、受付制御のために集合的
に使用され、例えば、各種類のバケットは利用可能なトークンがあるか順番に確認され、
そして全ての関連バケットがそれぞれのトークン消費ポリシーに従って十分なトークンを
含んでいる場合にのみ、作業要求170は受付けられる。異なる実施形態において、異な
るバケットが受付制御のために確認される順番は異なる。ローカルバースト限度バケット
604は、例えば共有リソースの処理能力限度を考慮せず、かつ複製を考慮せず、孤立し
ているとみなされる作業対象の利用可能処理能力を表すトークンを含みうる。一実施形態
において、作業要求が受信されると、ローカルバースト限度バケット604(複数可)が
まず確認されうる。ローカルバースト限度バケットが十分なトークンを含む場合、共有リ
ソース能力バケット606が次に確認されうる。共有リソース能力バケットに十分なトー
クンが確認され、かつ作業要求に応じることでデータ複製が要求される場合、複製管理バ
ケット608が次に確認されうる。描写された実施形態において、全ての確認済みバケッ
トが十分なトークンを含む場合、作業要求が受付けられうる。確認済みバケットのいずれ
か1つでも十分なトークンを含まない場合、作業要求は拒否、延期、または再試行されう
る。
ローカルバースト限度バケット604が十分なトークンを含まず、示される他の種類の
バケットより前に確認されるシナリオにおいて、共有リソース能力バケット606及び/
または複製管理バケット608がそれぞれの消費ポリシーに基づいて要求を受付けるのに
十分なトークンを含んでいても、作業要求は拒否されうる。いくつかの実施形態において
、各ローカルバースト限度バケット604は読出し要求及び書込み要求のために保持され
、及び/または各共有リソースバケット606は読出し要求及び書込み要求のために保持
されうる。
いくつかの実施形態において、受付制御中に、例えば共有リソースバケットのそれぞれ
のインスタンスを使用して、いくつかの異なる種類の共有リソースが考慮されうる。例え
ば、一実施形態において、読出し処理を行うのに必要なメモリバッファの限定数は、作業
対象が実装されたサーバにおいて入手可能であり、そして利用可能メモリバッファを表す
共有リソース能力バケット606が確立されうる。同様に、別の実施形態において、デー
タ構造の種類(作業対象に使用されている所定のオペレーティングシステムのインスタン
スにおいてその限定数が入手可能なファイル記述子等)が各作業処理に使用され、そして
利用可能ファイル記述子を表す別の共有リソース能力バケット606が確立されうる。さ
らに詳しく後述されるように、いくつかの実施形態において、1以上の共有リソースの余
剰処理能力(リソースを共有する作業対象のプロビジョン能力の合計に相対する)を表す
トークンが、反復手法を使った公平な方法で作業対象間に分配されうる。
一実施形態によれば、作業対象(データベーステーブル、ファイル、またはストレージ
ボリューム等)のコンテンツが、サービスによって1以上の論理パーティションに分配さ
れうる。例えば、データベースサービスのクライアントにより、テーブルはおよそXテラ
バイト(TB)のデータを保有可能であり、かつ毎秒Y読出しまたは書込み処理の作業量
に対応可能であることが指定されうる。そしてデータベースサービスにより、P個の論理
パーティションを有するテーブルを設定することが決定され、各論理パーティションがX
/Pテラバイト(TB)のデータを記憶し、かつY/P処理というプロビジョン能力限度
に対応するのに十分なリソースが、各論理パーティションに最初に割当てられる。(いく
つかの実施形態において、例えば、一部のパーティションが他のパーティションに比べて
「より負荷の高い」、すなわちより高い平均要求率を有することが検知、または予測され
た場合に、パーティション間でプロビジョン処理能力の不均一な分配が行われうる。)少
なくともいくつかのこのような実施形態において、受付制御判断が論理パーティションレ
ベルで行われうる。各論理パーティションに対応して、データオブジェクトに対するデー
タ耐久性ポリシーまたはデータ複製ポリシーに従って、パーティションのデータのマスタ
レプリカと1以上のスレーブレプリカが設定されうる。機器故障、電力損失、及び/また
は自然災害等の要因によるデータ損失の確率を閾値未満に保つために、耐久性/複製ポリ
シーは、データ書込みが十分な数の別の物理的位置に確実に複製されるように設計されう
る。いくつかの実施形態において、書込み要求に対する受付制御判断はマスタレプリカに
おいて行われ、一方読出し要求に対する受付制御判断はマスタレプリカ、またはスレーブ
レプリカ(特にクライアントが少し古い可能性のあるバージョンのデータからの読出しで
も受入れる場合)のいずれかで行われうる。いくつかの実施形態において、クライアント
からの書込み要求が受付けられると、複製ポリシーに従って、例えば、書込みが成功した
という肯定応答がクライアントに提供される前に、N個のレプリカ(マスタレプリカとN
−1個のスレーブレプリカ)において修正データの複製が無事に完了される必要があるだ
ろう。よって、書込み要求の正常完了にはスレーブリソースの使用が必要になるため、書
込みに関する受付制御判断中に、スレーブ(複数可)における利用可能処理能力が(マス
タと同様に)考慮される必要があるだろう。一実施形態において、設定されたスレーブレ
プリカの数は、複製ポリシーで求められる最小数を超えうる。複製ポリシーは、書込みが
成功したとみなされる前に、書込みの定足数Q個の永続的コピーが作成されることを要求
しうるため、最小(Q−1)個のスレーブレプリカが必要となる可能性がありうる。しか
しながら、このような実施形態において、読出し負荷の均衡、高い可用性等の様々な理由
から、保持されるスレーブレプリカの数はQ−1を超えうる。様々な実施形態において、
特定のレプリカのスレーブまたはマスタ指定は、時間と共に変化しうることに留意された
い。例えば、所定の論理パーティションのマスタがインスタンス化されたデバイスが故障
、または到達不可能になった場合、前にスレーブとして指定された別のレプリカがマスタ
として選択されうる。いくつかの実施形態において、スレーブレプリカの数は、例えば、
データオブジェクトを所有するクライアントからの要求に応じて、当該データオブジェク
トの存続期間中に変更されうる。レプリカが必ずしもマスタまたはスレーブとして指定さ
れないいくつかの実施形態において、ピアツーピア環境においても、トークンベースの受
付制御に関する技術が適用されうる。このような実施形態において、受信書込み要求に対
する受付制御判断が行われたレプリカは、本明細書に説明されるように(行われる処理の
種類に関して)マスタレプリカに該当しうる。従って、レプリカが概してお互いに同等な
責任を有するピアツーピア複製を使用するいくつかの実施形態において、所定のピアP1
に書込み要求が受信された場合、少なくとももう1つのピアP2の利用可能処理能力に関
する情報を使用して、書込み要求を実行対象として受付けるか否かが判断されうる。
前述のように、書込みが複製される少なくともいくつかの実施形態において、書込みの
受付制御中に、複数のレプリカ(例えばマスタと少なくとも1つのスレーブ)における利
用可能処理能力が考慮される必要があり、これに応じて1以上の複製管理バケット308
が使用されうる。例えば、ローカルバースト限度バケット604は孤立しているとみなさ
れるマスタレプリカにおける利用可能処理能力を表しうるが、複製管理バケット308は
マスタから見た1以上のスレーブレプリカにおける利用可能処理能力を表しうる。
少なくともいくつかの実施形態において、複製管理バケット608(複数可)における
スレーブ(複数可)の状態の情報をリフレッシュするために、スレーブ能力更新プロトコ
ルが使用されうる(例えばマスタにおける複製管理バケット608(複数可)のトークン
集合数が、スレーブから受信した情報に基づいて更新されうる)。いくつかの実施形態に
おいて、マスタでバケットが使用される方法と同様の方法で(ただし同一ではない)、ス
レーブにおいてもトークンバケットが処理能力管理のために使用されうる。このような一
実施形態において、スレーブ能力更新プロトコルに従って、スレーブはマスタに対し、1
以上のスレーブローカルトークンバケット(プロビジョン能力バケット及び/またはバー
ストモードバケットを含みうる)の集合数スナップショット(すなわち時点表示)を提供
しうる。例えば、マスタにおける共有リソース能力バケット606と同様に、1つの特定
スレーブ側トークンバケットは、少なくとも一部のスレーブデータが記憶される共有スト
レージデバイスにおける利用可能能力を表し、そしてこのようなバケットの集合数のスナ
ップショットがマスタに提供されうる。異なる実施形態において、スレーブからスナップ
ショットを提供するために、様々な手法のいずれかが使用されうる。例えば、マスタによ
り書込み複製が要求された場合、スナップショットはスレーブからマスタへ送る書込み肯
定応答に添付またはピギーバックされうる、またはスレーブはスナップショットを、マス
タに当該スレーブが稼働していることを知らせるためにマスタへ送られる必要のあるハー
トビートメッセージに添付しうる。
複合トークンバケット
前述のように、異なる種類の作業要求到着バーストがネットワークアクセス可能なサー
ビスに与える影響は異なりうる。サービスは非常に高いバースト率を短い時間対処可能で
あるが、より低いバースト率には長い時間耐えうる。いくつかの実施形態において、受付
コントローラ180は、異なる種類のバーストがサービスに与える影響に基づいて、異な
る種類のバーストの継続時間を限定するように構成され、そして受付制御を支援するため
にバースト時作業要求到着様態は複数のカテゴリに分類されうる。図7は、少なくともい
くつかの実施形態による、受付制御のための作業要求バーストのカテゴリ分類の実施例を
示す図である。
図7において(図1aと同様に)、X軸は時間を表し、Y軸は所定の作業対象102に
おける作業要求到着率110を表す。例えば、毎秒(または毎N秒)受信される作業要求
の数を監視し、1秒あたりの要求数を計算し、そして時間間隔毎の1秒あたりの要求数を
表す点をつなぐことで、図7のようなグラフがプロットされうる。作業対象のプロビジョ
ン能力112は、Y軸にprにおいて交差する水平線により表される。作業対象は、到着
率がpr以下である限り通常モードで作動し、そして到着率がprを上回る度にバースト
モードで作動すると想定される。作業対象は、T0からT7までの時間に、T0とT1の
間の時間帯、T2とT3の間の時間帯、T4とT5の間の時間帯、及びT6とT7の間の
時間帯等、いくつかの時間帯で通常モードにある。しかしながら、3つの時間帯(T1か
らT2、T3からT4、及びT5からT6)において、作業対象はバーストモードにある
。グラフで表されるバーストB狭幅1(T1−T2間隔)とB狭幅2(T5−T6間隔)
の形は同様であり、どちらの形もバーストB広幅1の形とは異なる。バーストピーク率7
02A(B狭幅1の間の最大作業要求到着率)及びバーストピーク率702C(B狭幅2
の間の最大作業要求到着率)は、バーストピーク率702B(B広幅1の間の最大作業要
求到着率)より大幅に高い。
描写された実施形態において、受付コントローラ180は、2つの基礎トークンバケッ
トを含む複合バーストモードトークンバケットを維持するように構成されうる。後述され
るように、基礎トークンバケットの1つは、プロビジョン能力prと比べて非常に高い到
着率の短期バースト(B狭幅1またはB狭幅2等)を許可するために、かつこのような高
い到着率が非常に長く続くことを防止するためにも使用されうる。複合トークンバケット
のもう1つの基礎トークンバケットは、B広幅1等のより低いピーク率でより長いバース
トを許可するために使用されうる。適用可能なパラメータ及び/またはポリシー(例えば
、補充率)は、基礎バケットにより異なる。少なくともいくつかの実施形態において、バ
ーストモードの間に作業要求を実行対象として受付けるために、両方の基礎バケットから
トークンが消費されうる。
図8は、少なくともいくつかの実施形態による、バーストモード受付制御のためのピー
クバーストバケット(PBB)802と持続バーストバケット(SBB)804とを含む
複合トークンバケット801の使用の実施例を示す図である。描写された実施形態におい
て示されるように、複合トークンバケット801は、作業対象102のためのバーストモ
ードトークンバケッセット125の一部を成す。各バケット802と804は各自のバー
スト率(バケットがモデルとする最大到着率を表す)及び各自のバースト時間窓(モデル
にされたバーストの継続時間を示す)により特徴づけられる。ピークバースト率(pbr
)パラメータは、PBBを使って対応する最大到着率を表し、ピークバースト時間窓サイ
ズ(pbw)パラメータは、作業対象がこのような到着率に対応可能であるべき継続時間
を示す(補充処理なし等の特定条件を仮定する)。持続バースト率(sbr)パラメータ
は、理想的には長い持続バースト時間窓(sbw)の間対応するべきバースト到着率(p
brより低い)を表す。様々な実施形態において、それぞれの時間窓は一般に、それぞれ
のバケットがバーストに対応する継続時間の相対的長さを示しうる一方、実際にそれぞれ
の率のバーストに対応する実継続時間は、時間窓に必ずしも一致し得ないことに留意され
たい。よって、少なくともいくつかの実施形態において、時間窓は、対象とするバースト
の継続時間を示すと言われうるが、必ずしも実バースト継続時間に等しいわけではない。
PBB802とSBB804の最大トークン集合数は、バースト率と時間窓の積を計算す
ることで事例ごとに取得される。例えば、PBBの最大集合数は(pbr*pbw)であ
り、そしてSBBの最大集合数は(sbr*sbw)である。矢印856、858により
示されるように、複合バケット801の各バケットから実際にトークンが消費される率は
、作業要求の到着率(少なくともバーストモードの間に、そしていくつかの実施形態にお
いては作業対象がバーストモードと通常モードのどちらにあるのか関係なく)に依存しう
る。少なくともいくつかの実施形態において、要求が受付けられると、PBB802及び
SBB804の両方からトークンが消費される。すなわちPBB及びSBBからトークン
が消費される率は同一である。
非常に高い到着率のバーストの長過ぎる持続を確実に許可しないために、所定の作業要
求を実行対象として受付ける際、描写された実施形態の各バケットからトークンが消費さ
れうる。前に提供した実施例を繰り返すと、プロビジョン能力(pr)が毎秒100処理
(100処理/秒)であり、ピークバースト率(pbr)が1000処理/秒であり、ピ
ークバースト時間窓サイズ(pbw)が6秒であり、持続バースト率(sbr)が200
処理/秒であり、そして持続バースト時間窓サイズ(sbw)が60秒であるシナリオを
考察する。従って、PBBの最大集合数は1000*6、すなわち6000トークンであ
り、またSBBの最大集合数は、200*60の積、すなわち12000トークンに設定
される。例示的シナリオにおいて、所定の要求を受付けるために、PBBとSBBに対し
それぞれ1トークンが要求される。PBB及びSBBの両方が満杯である(PBBは60
00トークンを有し、SBBは12000トークンを有する)時間Tに始まる作業要求B
のバーストを考察する。そしてPBBは毎秒200トークン補充され、一方SBBは毎秒
100トークン補充されると仮定する。バーストBが1000要求/秒の要求到着で構成
されている場合、PBBの集合数が毎秒約800トークン(1000消費し、200補充
される)の率で減少し、一方SBBの集合数が毎秒約900トークン(1000消費し、
100補充される)減少するため、Bの要求は7から8秒の間受付けられうる。この時間
を過ぎると、複合バケットは1000要求/秒に対応不可能になる。しかしながら、バー
ストBが毎秒200要求の要求到着で構成されている場合、PBBは毎秒正味トークンの
損失はなく(200消費し、200補充される)、一方SBBは毎秒100トークン(2
00消費し、100補充される)損失しうる。このように当例示的シナリオにおいて、よ
り低いバースト率(200要求/秒)は、急激なバースト(7から8秒間の1000要求
/秒のバースト)より、長い時間(120秒)対応しうる。
前述のように、様々な実施形態において、複合トークンバケット801の当例示的使用
に関する算術は、到着率の変動、作業対象の通常モードへの復帰、及び/または異なる種
類の要求に対し異なる数のトークンを必要とする消費ポリシー等の様々な要因により、実
際さらに複雑でありうる。
描写された実施形態において、例えばPBBの補充率は、プロビジョン能力prの関数
(f1(pr))であり、そして作業対象のプロビジョン能力バケットにおける未使用ト
ークンの数「u」の関数(f2(u))である。同様に、SBBの補充率は、プロビジョ
ン能力の関数(f3(pr))及びuの関数(f4(u))である。一実装例において、
PBB、SBB、またはこれら両方のいずれかの補充率は、プロビジョン能力バケットに
おける未使用トークンの絶対数に基づく代わりに、未使用トークンがプロビジョン能力バ
ケットに蓄積する率に基づきうる。いくつかの実施形態において、前の実施例のように、
PBBの最大集合数はSBBの最大集合数よりも小さく設定されうる一方、PBBの補充
率はSBBの補充率よりも高く設定されうる。異なる実施形態が、様々な種類の関数f1
、f2、f3、f4の所望する任意の組合せを使用しうる。
様々な実施形態において、パラメータ(pbr、pbw、sbr、及びsbw等)並び
に関数(f1、f2、f3、及びf4)の定義は調整可能または設定可能である。例えば
受付コントローラ180は、パラメータの値及び関数の定義を、設定ファイルから、また
はネットワークアクセス可能なサービスの管理者からの入力により、特定するように構成
されうる。受付コントローラは、パラメータ値及び関数を特定し、最大集合数を計算また
は設定し、パラメータ通りにバケット802、804にトークンを追加し、そして受信作
業要求を待ち受けうる。バーストモードの間に作業要求が受付けられると、PBB及びS
BBのいずれか、またはこれら両方のトークン集合数に少なくとも一部基づいて、作業要
求は実行対象として受付けられうる(または拒否されうる)。作業要求が受付けられた場
合、PBB及びSBBの2つのバケットのそれぞれの消費ポリシーに基づいて、1以上の
トークンがPBB、SBB、またはこれら両方のいずれかから消費されうる。図12に関
してさらに詳しく後述されるように、PBB及びSBBは、様々な時点においてそれぞれ
の補充率に基づいて補充されうる。少なくともいくつかの実施形態において、関数f1、
f2、f3、及びf4のうちのいくつかは、同一の関数でありうる。例えばf1(pr)
=prの場合に同一の関数でありうる。一実施形態において、関数f1、f2、f3、及
びf4のうちのいくつかは、別の一部の関数と同一でありうる。例えば、この4つの関数
は異なるという要件はないだろう。いくつかの実施形態において、プロビジョン能力バケ
ットの未使用トークンの数「u」は補充率に寄与し得ない。例えば、補充率は未使用トー
クンの蓄積とは無関係である場合もありうる。少なくともいくつかの実施形態において、
PBB及び/またはSBBは、通常モードで作動中に、これらの補充ポリシーに従って(
及びこれらの最大トークン集合数限度を条件に)補充され、作業要求到着率がバーストモ
ードの閾値より低い間でも、PBB及び/またはSBBにトークンが蓄積される。このよ
うな通常モードの間のバーストモードバケットの補充は、例えばシステムが今後のバース
トに対処できるように準備をするのに役立ちうる。
いくつかの実施形態において、作業対象を実行するサービスは、異なる作業要求カテゴ
リに対するそれぞれのパラメータセットを使用して、ピーク及び持続バーストモードの受
付制御を行うことを所望しうる。例えば、読出しには、書込みとは異なるピークバースト
率(または持続バースト継続時間)の使用が適切でありうる、または優先度ベースのそれ
ぞれの作業要求カテゴリには、異なるピークバースト率(または持続バースト継続時間)
の使用が適切でありうる。例えば、極めて時間依存性の高いある作業要求カテゴリに対し
、他の時間依存性の低い作業要求カテゴリと比べて、より高いピークバーストに対応でき
ることがサービスで所望されうる。いくつかの実施形態において、受付コントローラ18
0は、複数の複合バケットを実行して、このような使用事例に対処しうる。図9は、少な
くともいくつかの実施形態による、作業処理のそれぞれのカテゴリ専用のピークバースト
及び持続バーストバケットの使用を示す図である。
描写された実施形態において示されるように、バーストモードバケットセット125に
は、そのローカルバースト限度バケット604集合の中に、それぞれ1以上の作業要求カ
テゴリ専用の複合バケット801A、801B、及び801Cを含む複数の複合バケット
801が含まれうる。例えば、複合バケット801Aは、カテゴリC1の要求に対する受
付制御のために使用され、複合バケット801Bは、カテゴリC2の要求に対する受付制
御のために使用され、そして複合バケット801Cは、カテゴリC3及びカテゴリC4の
要求に対する受付制御のために使用されうる。異なる実施形態において、カテゴリの定義
はサービスに依存しうる。例えば、1つのサービスでは、行われる処理の種類に基づいて
カテゴリが定義され(例えば読出し及び書込みは別のカテゴリになりうる)、別のサービ
スでは、リソースの平均消費量に基づいてカテゴリが定義され(例えば、短い処理対長い
処理)、別のサービスでは、クライアントが指定した優先度またはサービスが割当てた優
先度に基づいてカテゴリが定義されうる。
各複合バケット801は、pbr、pbw、sbr、及びsbwのパラメータ設定のそ
れぞれの(異なりうる)セットを有する、少なくとも1つのPBB802と少なくとも1
つのSBB804とを含みうる。例えば、複合バケット801AはPBB802AとSB
B804Aとを含み、複合バケット801BはPBB802BとSBB804Bとを含み
、一方複合バケット804CはPBB802C、802Dと単一のSBB804Cとを含
む。複合バケット801Cの場合、カテゴリC3の作業要求のバーストモード受付制御は
、PBB802C及びSBB804Cを使用して管理され、一方カテゴリC4の作業要求
のバーストモード受付制御は、PBB802D及び共有SBB804Cを使用して対処さ
れる。従って、当例示的シナリオにおいて、カテゴリC3のバーストモード作業要求が受
信されると、PBB802C及びSBB804Cの集合数が確認され、そしてカテゴリC
4のバーストモード作業要求が受信されると、PBB802D及びSBB804Cの集合
数が確認される。異なる作業要求カテゴリ(または作業要求カテゴリの組合せ)に対する
個別の複合バケットを実行することで、サービスは、単一の複合バケットが使用された場
合に実行可能なバーストモード様態の制御と比べて、より細やかな粒度でバーストモード
様態を制御可能である。図9のバーストモードバケットセット125はまた、1以上の共
有リソース能力バケット606(例えば、バーストモード受付制御中に共有リソースの能
力限度を確実に考慮する)と、1以上の複製管理バケット608(例えば、複製する必要
のある書込み等の処理に対する受付制御判断を、複数のレプリカにおける利用可能処理能
力に少なくとも一部基づいて確実に行う)とを含みうる。
バーストモード受付制御の方法
図10は、少なくともいくつかの実施形態による、ネットワークアクセス可能なサービ
スにおいて作業要求に対しトークンベースの受付制御機構を実行するために行われうる処
理態様を示すフロー図である。構成要素1001で示されるように、例えばクライアント
からのプロビジョニング要求に応じて、作業対象に適用される通常モード処理能力限度が
決定される。例えば、データベースサービスのクライアントが、毎秒N読出しまたは書込
み処理に対応可能なテーブルが作成されるよう要求すると、これに応じて当該テーブルの
通常モード処理能力限度はNに設定されうる。サービスの受付コントローラ180は、例
えばデフォルト設定に基づいて、またはクライアントに要求されたもしくはクライアント
と取り決めた要件に基づいて、通常モードバケットセット及びバーストモードバケットセ
ットに使用される様々な他のパラメータ(バケットの数、初期トークン集合数、補充率等
)を決定しうる。そして通常モードバケットセット120及びバーストモードバケットセ
ット125のバケットは、例えばインスタンスが生成され、そしてトークンが追加される
等、初期化されうる(構成要素1006)。
受付コントローラにおいて次の作業要求が受信される(構成要素1010)。少なくと
も1つの通常モードバケットのトークン集合数が確認されうる。通常モードトークン集合
数が閾値基準T1を満たす場合(構成要素1014にて検出)、1以上のトークンが通常
モードトークンバケット(複数可)から消費され(すなわち、トークン集合数は変更され
うる)、そして作業要求が実行対象として受付けられうる(構成要素1016)。単純な
一実装例において、例えば、通常モードトークンバケットは、閾値基準Tを満たすために
少なくとも1トークンを有する必要があり、そして受付済作業要求毎に1トークンが消費
されうる。いくつかの実施形態において、通常モード作動中に作業要求が受付けられると
、1以上のバーストモードバケットから(1以上の通常モードバケットからと同様に)ト
ークンが消費されうる。一般に消費されるトークンの数は、バケット(複数可)で実施さ
れているトークン消費ポリシーを含む様々な実施形態の要因の組合せに、及び/または作
業要求に応じるために必要となりうる作業量の見積りに依存しうる。少なくともいくつか
の実施形態において、受付コントローラ180は、例えばクライアントにより作業要求内
で指定された詳細、過去に実際要求された同様の要求の作業量の蓄積された経歴または統
計等に基づいて、このような見積もりを作成するように構成されうる。いくつかの実施形
態において、実施されている補充ポリシーによって、様々なトークンバケット(例えば、
通常モードバケット、バーストモードバケット、またはこれら両方のいずれか)は、受付
制御判断が行われた時点で任意で補充されうる(すなわちこれらのバケットの補充ポリシ
ー及び最大集合数限度に従って、これらのバケットにトークンが追加される)。図12に
関して後述されるように、異なる実施形態において、トークンバケット補充につながる特
定の時間またはイベントは異なる。通常モードトークン集合数が閾値基準T1を満たさな
い場合(同様に構成要素1014にて検出)、受付コントローラ180は、作業要求を受
付けた場合に作業対象はバーストモード作動となり、これに応じて1以上のバーストモー
ドトークンバケットのトークン集合数が特定されなくてはならないと結論付けうる。
描写された実施形態において、受付コントローラ180は、少なくとも1つのバースト
モードトークンバケットのトークン集合数を特定しうる。バーストモードトークン集合数
が閾値基準T2を満たす場合(構成要素1018にて判定)、1以上のトークンがバース
トモードバケット(複数可)から消費され、そして作業要求がバーストモードにおける実
行対象として受付けられうる(構成要素1020)。単純な一実装例において、例えば、
バーストモードトークンバケットは、閾値基準T2を満たすために少なくとも1トークン
を有する必要がありうる。従って、少なくともいくつかの実装例において、通常モード及
びバーストモード両方のバケットに対するトークン集合数閾値が同じ場合もありうる。一
般にバーストモードトークンバケットから消費されるトークンの数もまた、バーストモー
ドバケット(複数可)で実施されているトークン消費ポリシーを含む様々な実施形態の要
因の組合せに、及び/または作業要求に応じるために必要となりうる作業量の見積りに依
存しうる。バーストモード受付判断が行われると、作業要求の通常モード受付に応じた処
理の場合のように、1以上のバケットが、これらバケットの補充ポリシーに基づき、そし
てこれらバケットの最大トークン集合数限度を条件に、任意で補充されうる。
通常モード(構成要素1016)またはバーストモード(構成要素1020)のいずれ
かで作業要求が受付けられると、作業要求に対応する1以上の処理が開始されうる(構成
要素1022)。いくつかの実施形態において、処理が完了すると、受付コントローラ1
80は、実際に行われた作業量と、消費するトークン数を決定するのに使用された作業見
積りを、非同期的に比較しうる(構成要素1024)。元の作業見積りが間違っていた場
合、これに応じて、該当する作業要求の受付制御に使用された1以上のバケットにおける
トークン数が調整されうる。見積りが実際に行われた作業よりも小さい場合、受付制御に
使用されたバケットから追加でいくつかのトークンが取除かれうる。いくつかの実施形態
において、このように追加で消費されるトークンの数は、作業見積りと実作業の違いに基
づいて計算されうる。見積りが大きすぎた場合、いくつかのトークンが受付制御に使用さ
れたバケットから取除かれうる。
描写された実施形態において、通常モードトークンバケットセットの集合数が基準T1
を満たさず、かつバーストモードバケットセットのトークン集合数が基準T2を満たさな
い場合、作業要求は拒否、延期、または再試行されうる(構成要素1080)。いくつか
の実施形態において、作業要求を受付けない判断が下された場合、実施されている補充ポ
リシーによって、通常モードバケット(複数可)、バーストモードバケット(複数可)、
またはこれら両方のいずれかに対し、1以上のトークンが任意で追加されうる。受付制御
判断が行われた後(例えば、作業要求は受付けられたか、拒否されたかのいずれか)、受
付コントローラは次の作業要求を待ち受け、そして構成要素1010以降に該当する処理
が繰り返されうる。
図11は、少なくともいくつかの実施形態による、ネットワークアクセス可能なサービ
スにおいて、複合バケットを含む複数のバーストモードトークンバケットを使用してバー
ストモード処理に対処するトークンベースの受付制御機構を実行するために行われうる処
理態様を示すフロー図である。構成要素1101に示されるように、受付コントローラ1
80は、所定の作業対象における高い到着率の短期バースト及び低い到着率の長期バース
トのバーストモード受付制御に使用するいくつかのパラメータを決定しうる。決定された
パラメータには、例えば、対応するピークバースト率(pbr)、ピークバースト率に対
応する継続時間を示すピークバースト時間窓サイズ(pbw)、持続バースト率(sbr
)(一般にpbrより低いが、必須ではない)、及び持続バースト時間窓サイズ(sbw
)(一般にpbwより小さいが、必須ではない)が含まれうる。少なくともいくつかの実
施形態において、例えば共有リソース能力バケット及び/または複製管理バケットを含む
他のバケットが設定されるべきか、様々なバケットの初期集合数設定等の他のパラメータ
もまた決定されうる。少なくともいくつかのパラメータは、例えば管理者による入力また
はサービスのオートチューニングに応じて設定可能であり、そしていくつかの実装例にお
いて1以上のパラメータが設定ファイルを介して読み出されうる。
構成要素1106に示されるように、少なくとも1つのピークバーストバケット(PB
B)と1つの持続バーストバケット(SBB)とを含む複合バケットは、例えばバケット
のそれぞれの初期集合数306等のパラメータ設定に基づいてバケットのインスタンスを
生成し、トークンを追加することで、初期化されうる。描写された実施形態において、P
BBの最大トークン集合数はpbrとpbwの積に設定され、SBBの最大トークン集合
数はsbrとsbwの積に設定されうる。PBB及び/またはSBBの補充率は、作業対
象のプロビジョン処理能力に少なくとも一部基づいて設定されうる。いくつかの実施形態
において、PBB及び/またはSBBの補充率は、プロビジョン能力バケットまたは別の
通常モードバケットにおいて未使用トークンが蓄積する率、及び/またはこのようなバケ
ットにおける未使用トークンの数にも基づきうる。
バーストモードの間に受付コントローラにて次のバーストモード作業要求が受信されう
る(構成要素1110)(すなわち、作業要求が受信され、そして受付コントローラは、
プロビジョン能力バケット等の通常モードバケットのトークン集合数を使用して、または
作業対象の作動モードを示すある別のインジケータを使用して、作業対象がバーストモー
ド状態にあると判定しうる)。受付コントローラはPBB及び/またはSBBのトークン
集合数を特定し、消費ポリシー及び/または作業要求に対応付けられる見積作業量に基づ
いて、作業要求を受付けるのに十分なトークンが利用可能か否かを確認しうる。描写され
た実施形態において、PBB及び/またはSBBに十分なトークンが存在する場合(構成
要素1114にて検出)、受付コントローラは、検討中の作業要求のために集合数を同様
に確認する必要のある別のバケットがバーストモードトークンバケットセットに含まれる
か否かを判断しうる。例えば、いくつかの実施形態において、バーストモードトークンバ
ケットセットは、1以上の共有リソース能力バケット606及び/または1以上の複製管
理バケット608を含みうる。追加のバーストモードトークンバケットが実装されていて
、かつ作業要求に関連するこれらの残りのバーストモードトークンバケットのそれぞれに
十分なトークンが確認される場合(構成要素1118にて検出)、各関連バケットから適
切な数のトークンが消費され(例えば、適用消費ポリシーに従って)、そして作業要求が
実行対象として受付けられうる(構成要素1120)。少なくともいくつかの実施形態に
おいて、いくつかの追加バーストモードトークンバケットは特定の作業要求カテゴリにの
み関連しうることに留意されたい。例えば、一実施形態において、複製管理トークンバケ
ット608の集合数は、書込み要求受付制御のためにのみ確認され、このような実施形態
において、読出し要求を受付けるか否か判断する際は確認され得ない。従って、いくつか
の実施形態において、バーストモードトークンバケットが存在したとしても、受信された
全ての作業要求の受付制御のために当該バケットが使用されなければならない、とは意味
し得ない。
描写された実施形態において、複合トークンバケットペア(すなわちPBB及び/また
はSBB)(構成要素1114にて検出)または関連追加バーストモードトークンバケッ
ト(構成要素1118にて検出)のいずれにおいても消費されるのに十分なトークンが利
用可能でない場合、作業要求は拒否、延期、または再試行されうる(構成要素1138)
。いくつかの実施形態において、作業要求が受付けられたか、拒否されたかに関係なく、
受付制御に使用される1以上のバケット(例えば通常モードトークンバケットセット12
0のバケット及び/またはバーストモードバケットセット125のバケットを含む)は、
受付制御判断が行われた後に、対応する補充ポリシーに従って補充されうる(構成要素1
140)。所定の作業要求に対応する自身の処理を完了後、受付コントローラ180は次
の作業要求が到着するのを待ち受け、そしてバーストモード時に受信された次の作業要求
に対し、構成要素1110以降に対応する処理が繰り返されうる。
異なる実施形態において、トークン補充処理(すなわち所定のトークンバケットに対し
トークンを追加する処理)は、異なるイベントに応じて、または異なるスケジュールに基
づいて、行われうる。図12は、少なくともいくつかの実施形態による、受付制御のため
に行われうるトークンの消費、補充、及び譲渡処理の態様を示すフロー図である。構成要
素1201に示されるように、受付コントローラは、バケット集合数の変更につながりう
るトリガーイベントの種類を特定しうる(例えば、構成パラメータを調べることによって
)。いくつかの実施形態において、新規作業要求の到着及び/または対応する受付制御判
断の完了が、トークン集合数の変更を引き起こしうる。一実施形態においては、バケット
における最期の集合数変更からの時間間隔(例えばN1ミリ秒またはN2秒)の経過が、
トークン集合数を引き起こしうる。さらに別の実施形態においては、時間間隔の経過、作
業要求の到着、及び/または作業要求受付制御の完了の組合せが、トークン集合数の変更
を引き起こしうる。次のトリガーイベントの発生が検出されうる(構成要素1206)。
例えば通常モードバケット及びバーストモードバケットを含む様々なトークンバケットの
現在の集合数が特定されうる(構成要素1210)。いくつかの実施形態において、様々
なトークンバケットに対する読出し及び書込みは、全て単一のアトミック処理(データベ
ーストランザクションと同類)で行われ、そしてこのような実施形態において、当該アト
ミック処理は、現在のトークン集合数の読出しから始まりうる。
描写された実施形態において、トリガーイベントがトークンの消費または破棄を伴う場
合(構成要素1214にて検出)、各バケットの消費されるまたは破棄されるトークン数
が決定され(構成要素1217)、そしてバケット集合数(複数可)が適宜調整されうる
。前述のように、様々な実施形態において、受付けられた各作業要求に対し、いくつかの
トークンが消費されうる。いくつかの実施形態において、トークンは最大存続期間を有し
、それぞれの最大存続期間中ずっと未使用のトークンは、トークン老朽ポリシーに従って
破棄されうる。
少なくともいくつかの実施形態において、1つのバケットに未使用のまま残るトークン
は、別のバケットに「譲渡」されうる。例えば、プロビジョン能力バケットの未使用トー
クンは、1つまたは複数のバーストモードバケットに蓄積または貯蓄されうる。様々な実
施形態において、トークンの「譲渡」には、例えば特定の時点にプロビジョン能力バケッ
トに未使用のNトークンが見つかった場合、バーストモードバケットにNトークン分追加
され、かつプロビジョン能力バケットのトークン集合数はN分削減される、論理処理が含
まれることに留意されたい。すなわち、このような実施形態において、譲渡元及び譲渡先
のトークン集合数が調整され、トークンは実際に送信または移動等され得ない。いくつか
の実施形態において、譲渡元バケットに未使用のNトークンが見つかった場合、Nトーク
ンは複数の譲渡先バケットのそれぞれに追加されうる(例えば、プロビジョン能力バケッ
トにおけるたった1つの未使用のトークンの検出により、複合トークンバケット801の
PBB及びSBB両方の集合数は増加するに至る)。このような譲渡が行われると(構成
要素1220にて検出)、譲渡元バケット(複数可)の集合数は削減され、かつ譲渡先バ
ケット(複数可)の集合数は増加されうる(構成要素1223)。
必要に応じて、様々なバケットに対し、それぞれの補充ポリシーに従ってトークンが追
加され(構成要素1227)、そして構成要素1210に対応する処理において、アトミ
ック処理すなわちトランザクションが開始されていた場合、当該アトミック処理は終了さ
れうる(構成要素1230)。いくつかの実施形態において、トークンが消費、破棄、ま
たは譲渡されたかに関係なく、このような補充処理が行われうる(すなわち、このような
実施形態において、構成要素1214及び1220において判断された肯定的及び否定的
結果の両方に対し、補充処理が続いて行われうる。)このような実施形態において、単一
のアトミック処理にて説明された様々なトークン集合数の調整を行うことで、受付コント
ローラは、多数のバケット組合せにわたって所望するレベルの一貫性を確保しうる。受付
コントローラはその後次のトリガーイベントを待ち受け、そして次のトリガーイベントが
検出されると、構成要素1206以降に対応する処理が繰り返されうる。
前述のように、少なくともいくつかの実施形態において、受付制御判断の結果、及び/
または作業要求の受付に伴い消費されるトークン数は、作業要求が受付けられた場合に行
われるはずの作業量の見積りに少なくとも一部基づきうる。いくつかの実施形態において
、見積りが不正確であると判明する場合もあり、受付コントローラ180は、例えば受付
けられた作業要求の作業が完了し、作業量の不一致が(もしある場合)明らかになった時
に、このような見積りエラーを補償するように構成されうる。図13は、少なくともいく
つかの実施形態による、受付済作業要求に対応する作業処理が完了した後に、1以上のト
ークンバケットにおけるトークン数を調整するために行われうる処理態様を示すフロー図
である。構成要素1301に示されるように、受付コントローラは、作業要求に対応する
作業の完了を示す次の通知を受信しうる。このような通知は、例えば作業対象が実行され
るサービスの管理コンポーネントにより受付コントローラに対し非同期的に提供され、そ
して作業要求に対して実際に行われた作業量の計量を含みうる。
描写された実施形態において、受付コントローラ180は、実際に行われた作業量に関
して、元の見積りが大きすぎたのか小さすぎたのかを判定しうる。見積りよりも多くの作
業が行われた場合(構成要素1304にて判定)、受付コントローラは、過小見積りに対
する補償として、1以上のトークンバケットから差し引くトークン数を決定し(構成要素
1308)、これに応じて当該バケットの集合数を下方修正しうる。場合によっては、当
該下方修正により、トークン集合数がマイナスになりうる。少なくともいくつかの実施形
態において、最終的にはトークン集合数は補充処理によりプラスの値に戻りうるが、所定
のバケットにおけるトークン集合数がマイナスの状態の間、新規の作業要求の受付判断は
所定のバケットの集合数に基づいて行われるため、新規の作業要求は拒否されうる。
少なくとも一実施形態によれば、元の作業見積りが大きすぎた場合(構成要素1312
にて判定)、受付コントローラ180は任意で、1以上のバケットに追加するトークン数
を決定し、これに応じてバケット集合数を設定しうる(構成要素1316)。描写された
実施形態において、受付コントローラは、作業見積りの正確度に関する記録を保持するよ
うに構成されうる。例えば、期間を通して受付けられた一部または全ての作業要求に対す
る見積り及び実作業量の記録が、データベースまたはログに保持されうる。従って、見積
りが正確であろうがなかろうが、かつエラーがあった場合は当該エラーの種類に関わらず
(例えば、見積りが大きすぎようが小さすぎようが)、受付コントローラは作業見積りエ
ラーに関する記録を更新しうる(構成要素1323)。このような記録維持は、例えば、
受付コントローラはエラーに基づいて見積手順を適合させるため、経時的な見積りの正確
度の向上に役立ちうる。いくつかの実施形態において、このような記録は、作業要求のサ
ブセット(例えばランダムサンプル)に関してのみ保持されうる、またはそのエラーの大
きさが閾値を超える作業要求に関してのみ保持されうる。描写された実施形態において、
記録の更新後、受付コントローラは次の完了に関して知らせが来るのを待ち、構成要素1
301以降に対応する処理が繰り返されうる。いくつかの実施形態において、図13に示
される処理と同様の処理が、通常モードバケットだけでなくバーストモードバケットにお
いても行われうる。少なくとも一実施形態において、図13に示される種類のバケット集
合数に対する遡及訂正は、受信するクライアント作業要求の受付制御判断において低い優
先順位で、またはバックグランドタスクとして、行われうる。
いくつかの実施形態において、所定の作業対象の利用可能処理能力は、受信作業要求以
外の要因に影響されうる。例えば、作業対象の状態が復元される障害からの復旧等のある
種類の管理処理、または様々な種類の保守処理により、クライアント要求に対して利用可
能な処理能力は低下しうる。図14は、少なくともいくつかの実施形態による、管理イベ
ントに応じてバーストモード受付制御パラメータを修正するために行われうる処理態様を
示すフロー図である。構成要素1401に示されるように、受付コントローラ180は、
1以上の作業対象の利用可能処理能力の低下につながりうる復旧処理の開始等のバックグ
ラウンドイベントまたは管理イベント(すなわち、クライアント作業要求が直接の原因で
起こらないイベント)の通知を受信しうる。それから受付コントローラは、イベントを考
慮して、バースト対応(例えばプロビジョン処理能力よりも高い率での対応)を一時的に
無効にするか否かを判断しうる。バースト対応が無効化される場合(構成要素1404に
て決定)、イベントが完了するまで通常モード受付制御のみが対応されうる(構成要素1
408)。
バースト対応が完全に無効化されない場合(同様に構成要素1404にて決定)、いく
つかの実施形態において、受付コントローラは、例えば1以上のバケットからいくつかの
トークンを取除く、または補充率を一時的に下方修正する等して、許容バースト対応量を
制限するように構成されうる。このような実施形態において、受付コントローラは、差し
引くトークンの数、及び/または補充率を下げる程度を決定しうる(構成要素1412)
。これに応じて1以上のバケットの集合数が調整され、及び/または補充率が決定通りに
修正されうる。少なくとも一実施形態において、場合によっては、所定のバケットの集合
数は調整の結果マイナスになりうる。そして受付コントローラは、管理またはバックグラ
ウンドイベントが完了したことを示す通知を待ち受けうる(構成要素1415)。イベン
トの完了後、少なくともいくつかの実施形態において、受付コントローラは、イベントが
原因で行われた一部または全ての変更を任意で元に戻しうる(構成要素1418)。例え
ば、一部のバケットの集合数は増やされ、及び/または補充率は元の値に戻されうる。い
くつかの実施形態において、イベント通知の受信前に使用されていた元のパラメータによ
るバーストモード受付制御が再開される。少なくともいくつかの実施形態において、通常
モード受付制御は(バーストモードとは対照的に)、バックグラウンドまたは管理イベン
トが起こっている間、影響を受けずに継続されうることに留意されたい。少なくともいく
つかの実施形態において、管理イベントの間、補充率(修正された可能性あり)に従って
、バーストモードバケットに対しトークンが継続して追加されうる。
所定の作業対象に関するバーストモード受付制御を統御する少なくともいくつかのパラ
メータ(補充率、最大バケット集合数等)は、時間と共に修正される必要がありうる。図
15は、少なくともいくつかの実施形態による、トークンベースのバーストモード受付制
御に使用されるパラメータを調整するために行われうる処理態様を示すフロー図である。
描写された実施形態において、構成要素1501に示されるように、1以上の作業対象に
関する作業要求到着率、受付率、及び/または拒否率が監視されうる(例えば、受付コン
トローラにより、または作業対象(複数可)を実行するサービスと提携する最適化エンジ
ンにより)。受付、拒否、及び到着率に関する収集されたデータは、作業対象から収集さ
れた、または作業対象に対応付けられたリソース使用計量と共に、分析されうる。分析に
より、バーストモード受付制御を統御するパラメータが変更されるべきであることが示唆
された場合(構成要素1504にて判定)、受付コントローラまたは別のサービスコンポ
ーネントにより、パラメータ変更を実行した場合の見積費用が特定されうる(構成要素1
508)。分析によりパラメータ変更は必要ないと示唆された場合、構成要素1501の
監視処理が再開されうる。
いくつかの事例において、費用(または少なくともクライアントに請求されうる費用の
一部)は、ごく少額またはゼロでありうる。このようなシナリオにおいては、作業対象を
設定したクライアントとの更なる対話なしに、パラメータ変更が行われうる。別の事例に
おいては、一または複数のクライアントは、提案されたパラメータ変更の可能性のある費
用及び可能性のある効果に関して通知されうる(構成要素1510)。1以上のバースト
モードパラメータのパラメータ変更要求をクライアントが返答した場合(構成要素151
2)、パラメータ変更が実行されうる(構成要素1516)。受付コントローラは、到着
率、受付率、及び拒否率の監視を再開しうる(構成要素1501)。いくつかの実施形態
において、図15に示されるものと同様の受付制御パラメータ変更が、構成要素1501
及び1504に示される監視された計量の分析に直接関係のない理由で、導入されうるこ
とに留意されたい。例えば、いくつかの実施形態において、クライアントは所定の作業対
象のプロビジョン処理能力の変更を要求し、そして当該作業対象のプロビジョン処理能力
の変更要求が受付けられると、受付制御パラメータ(少なくともいくつかはプロビジョン
処理能力の関数でありうる)は自動的に変更されうる。別の実施形態においては、作業対
象を実行するサービスの管理者が、ウィンドウズ(登録商標)のメンテナンス、アップグ
レード、機器変更等、様々な他の理由で、少なくともいくつかの受付制御パラメータを少
なくとも一時的に変更しうる。少なくともいくつかの実施形態において、クライアントは
パラメータのサブセットにのみアクセス可能であるため、パラメータ変更に対する実質的
管理制御が可能となる。
作業対象間トークン共有
前述のように、少なくともいくつかの環境において、作業要求は時間に関してだけでな
く、対象とした特定のデータサブセットに関しても不均一に分散しうる。図16は、少な
くともいくつかの実施形態による、作業要求到着率の不均一性と共に、サービスにより管
理されるデータの異なるサブセットに関する作業要求の例示的不均一分散を示す図である
。描写された実施形態において、データオブジェクト2010A(例えばデータベーステ
ーブルを含みうる)はO1−P1、O1−P2、O1−P3の3つのパーティションを含
み、一方別のデータオブジェクト2010BはパーティションO2−P1を含む。各パー
ティションは、各自のプロビジョン能力(例えば、読出し/秒、書込み/秒等、毎秒対応
される作業要求の数により表される)を有する個別の作業対象とみなされうる。プロビジ
ョン能力はPC1等と称されるオブジェクトにより示される(パーティションO1−P1
、O1−P2、O1−P3、及びO1−P4のプロビジョン能力は、それぞれPC1、P
C2、PC3、及びPC4である)。描写された実施形態において、受信作業要求を受付
けるか拒否するかに関する受付制御判断は、各パーティションの各自のトークンバケット
セットを使って、パーティションごとに個別に行われる。いくつかの実施形態において、
各パーティションは、例えば各自の通常モードトークンバケットセット及びバーストモー
ドトークンバケットセットを有しうる。データオブジェクト2010A及び2010Bは
単一のクライアントエンティティに所有され、または割当てられ、そしてあるクライアン
トアプリケーションセット等の共通目的のために使用されうる。従って、データオブジェ
クトの所有者の観点からすると、4つのパーティションは全て同一のデータセットの一部
とみなされうる。一般的に4つのパーティションは、サイズ(すなわち、各パーティショ
ンにおいて保有されるデータ量)及び/またはプロビジョン能力においてそれぞれ異なり
うる。
時間窓T0−T1の間に各パーティションすなわち各作業対象に到着する作業要求の率
Wが、図16に含まれるグラフで示される。矢印2051、2052、2053、及び2
054で示されるように、パーティションO1−P1、O1−P2、O1−P3、及びO
2−P1における作業要求到着率が、曲線W1、W2、W3、及びW4でそれぞれ表され
る。各パーティションのプロビジョン能力もまた示される。O1−P1の場合、作業要求
到着率W1は描写された時間窓の間、一貫してプロビジョン能力PC1より低い。O1−
P2に関しては、到着率W2は時間帯T0−T1の大部分の間、プロビジョン能力PC2
を超えている。従って、O1−P2は示された時間帯の大部分においてバーストモードで
あり続けたであろう。O1−P3に関しては、到着率は概してプロビジョン能力PC3に
近く、そしてO2−P1の到着率W4はほんのわずかの間、プロビジョン能力PC4を超
える。O1−P2における作業要求拒否率R2により示されるように、例えば受付制御に
おけるバーストモードバケットの使用にもかかわらず、いくつかの作業要求がO1−P2
において拒否された可能性がある。
示されるように、異なるパーティションを対象とした作業要求の到着率は、同一の時間
間隔の間でも、実質的に異なりうる。一部のパーティション(例えば、O1−P1)はそ
の通常モードトークンも全て使い切ってすらいないのに対し、同一オブジェクトの(また
は同一の所有者の別のオブジェクトの)他のパーティションは、1以上のバーストモード
バケットを実装しているにもかかわらず、作業要求を拒否しなければならないほど大きな
作業量を有しうる。従って、描写された実施形態において、4つのパーティションはトー
クン共有グループ2002の構成員とみなされ、そして示された空間的不均一性の影響を
低減するために、グループ2002において反復トークン共有プロトコルが実行されうる
トークン共有プロトコルが契機となって、いくつかまたは全てのパーティションすなわ
ち作業対象(例えば、各パーティションの受付コントローラ)により、トークン共有反復
の評価を試みるべきであるか否かに関する判断が行われる(例えば、一定の間隔で、また
はランダムな長さの時間が経った後に)。すなわち、O1−P2等の所定の作業対象は、
様々な基準のいずれかに基づいて、現在のバケット集合数と最近の作業量とを考慮した上
で、トークンを交換可能な1以上のパートナー作業対象を見つけ出すことが有意義である
か否かを判断しうる。トークン共有の評価を行うという判断が下された場合、作業対象は
、現在のプロトコル反復においてトークン共有イニシエータの役割を担い、そして1以上
のバケット種類に関するトークン集合数情報を交換するための1以上のパートナー作業対
象(同一のトークン共有グループの構成員)を特定しうる。イニシエータ及びパートナー
ピアのトークン集合数の分析後、イニシエータから関与する第二ピアの方向に、またはそ
の反対方向に、いくつかのトークンが譲渡されるべきか否かに関する、第二の判断が行わ
れうる。従って、例えば図16において、O1−P2はイニシエータとなり、そしてバー
ストモードトークンバケットに関するトークン集合数情報をO1−P1と交換しうる。O
1−P2のバーストモードバケットが、O1−P1の対応するバーストモードバケットよ
りも大幅に少ないトークン数を有する場合、O1−P1はO1−P2に対しN個のトーク
ンを譲渡すべきであると、O1−P1及びO1−P2はお互いに断定しうる。これに応じ
て、O1−P2のバケットにNトークンが追加され、そしてO1−PのバケットからNト
ークンが削除されうる。トークンの追加により、O1−P2は図16に示されるより大き
な作業量に対応可能となり、一方O1−P1におけるトークンの削減は、O1−P1にお
ける低い要求率を考えると、悪影響を少しもたらしていないだろう。その後、引き続くト
ークン共有プロトコルの反復において、必要であればある別のピア作業対象が、大きく負
荷がかかることになったいずれの作業対象にでもトークンを譲渡しうる。例えば、O1−
P2はその後、他のパーティションのいずれかにトークンを譲渡する立場にありうるが、
O1−P1は他のパーティションにトークンを提供する代わりに、トークンを要求するに
至りうる。いくつかの実施形態において、論理的に譲渡されるトークンの正確な数は、例
えばトークン集合数の違いに基づいて、及び/または作業対象のうちの1つにより要求さ
れるトークン数に基づいて等、所定の譲渡に関わる作業対象間における双方の合意により
決定されうる。
少なくともいくつかの実施形態において、このようなトークン譲渡に「ゴシッププロト
コル」が使用されうる。このような実施形態において、各作業対象は、ランダムな長さの
時間が経った後、イニシエータとして作動し、そして無作為抽出法を使用して、集合数情
報交換を行う別の作業対象を特定するように構成されうる。いくつかの実施形態において
、トークン譲渡に(トークン集合数情報交換にも)関与するか否かに関する判断は、各作
業対象によって自主的に行われうる。トークン共有グループの構成員は、異なる実施形態
における様々な要因に基づいて決定されうる。例えば、いくつかの実施形態において、所
定クライアントC1は、自身のデータオブジェクトO1、O2、及びO3は1つのトーク
ン共有グループG1の構成員とみなし、データオブジェクトO4及びO5は別のトークン
共有グループG2の構成要素とみなすが、データオブジェクトO6のトークンは共有しな
いことを示しうる。いくつかの実施形態において、ネットワークアクセス可能なサービス
により、少なくともいくつかのトークン共有グループ構成員決定が行われるが、別の実施
形態においては、クライアントからの明確な要求があった時にのみ、所定の作業対象セッ
トに対しトークン共有が実行されうる。いくつかの実施形態において、いくつかの異なる
クライアントが必要に応じて、それらのデータオブジェクト間でトークンを共有すること
を判断しうる。すなわち、トークン共有グループの全ての構成員が、同一のクライアント
エンティティ(企業組織またはネットワークアクセス可能なサービスの個人ユーザ等)に
所有されている必要はない。
例示的トークン共有プロトコル反復
図17は、少なくともいくつかの実施形態による、データアクセスの空間的不均一性の
影響を緩和するために実行されうるトークン共有プロトコルの例示的反復を示す図である
。3つのピア作業対象(例えば、テーブルパーティション)ピアA、ピアB、及びピアC
が、示された実施例における同一のトークン共有グループの構成員であり、そしてそれぞ
れがトークン共有に関わる単一のトークンバケット(例えば、バーストモードバケット、
または通常モードバケット)を有する。連続するプロトコルの反復の発生に伴う3つのピ
アのバケットのトークン集合数が、図の上部から下部に向かって増加する時間と共に経時
的に示される。実施例を簡潔にするために、プロトコルの反復1から順方向に開始し、補
充率、作業要求の受付、または他の要素から起こるトークン集合数の変化は無視し、そし
てトークン共有プロトコルを実行した結果起こるトークン集合数の変化にのみ着目する。
図17に示される時間帯の始めに、各ピアは1000トークンをバケットに有する。プ
ロトコルの第一反復が始まる時点で、矢印2150で示される受信作業要求によりピアA
は50トークンのみを有するが、ピアB及びピアCはまだ1000トークンを有する。示
された実施例において、反復毎に、当該ピアのうちの1つがもう1つ別のピアとトークン
集合数情報の交換を開始する(いくつかの実施形態において、所定の反復には多数のピア
の対が関与しうる。図17においてはプロトコルの作動に関する単純化された実施例のみ
が提供される)。関与する2つのピアが、それぞれのトークン集合数P1及びP2を比較
し、そして(ここではP1>P2と仮定する)、トークンの多いピアからトークンの少な
いピアに対し(P1−P2)/2トークン(整数に丸められたトークン数)を譲渡するこ
とを決定する。様々な実装例において、譲渡されるトークン数は様々な異なる要因に基づ
いて決定されうる。例えば(P1−P2)/2以外の式または関数が使用されうる。
従って、示された実施例における反復1の間、ピアC(1000トークンを有する)は
ピアA(50トークン)と集合数情報交換を開始し、そしてトークン譲渡サイズが(10
00−50)/2=475に決定される。よって、ピアCからピアAへの矢印によって示
されるように、475トークンがピアAのバケットに追加され、475トークンがピアC
から取除かれる。譲渡の後、ピアA及びピアCの両方が525トークンを有する。
反復2において、イニシエータとして作動するピアB(1000トークン)とピアA(
525トークン)の間でトークン集合数情報が交換され、(1000−525)/2すな
わち約237トークンがピアBからピアAへ譲渡されるに至る。その結果、ピアAはこの
時点で合計763トークンを有し、そしてピアBは762トークンを有する。(描写され
た実施形態においては、端数のトークンに非対応のため、反復2の終了時点でピアAとB
のトークン数には1の差がある。別の実施形態においては、端数のトークン数に対応可能
であるため、この場合にはピアA及びピアBの両者が762.5トークンを有しうる。)
反復3において、ピアA(763トークン)及びピアC(525トークン)が再びトー
クン集合数情報を交換し、そしてピアAは(763−525)/2=119すなわち11
9トークンをピアCへ譲渡する。反復4において、ピアB(762トークン)はピアC(
644トークン)へ59トークンを譲渡し、そして反復5においては、ピアB(703ト
ークン)がピアA(644トークン)へ29トークンを譲渡する。追加の反復(図示せず
)により、トークンの多いピアからトークンの少ないピアへさらなるトークンの譲渡が行
われうる。図17に示される例示的反復は、描写された実施形態において実施される特定
のトークン共有プロトコルの高次特徴を示すことを目的とし、より一般に、または別の実
施形態に対し必ず適用可能であるプロトコルルールを含むことを目的としないことに留意
されたい。
所定の作業対象が正確にいつ、どのような状況でトークン集合数情報交換を開始するべ
きか、集合数情報交換をどの他の作業対象と行うべきか、そして(もしあれば)譲渡すべ
きトークン数を決定するのに何の基準が使用されるべきかに関する判断は、全て異なる実
施形態における異なる基準セットに基づいて行われうる。いくつかの実施形態において、
例えば、所定の作業対象における受付コントローラまたは他のサービス管理コンポーネン
トにより、当該作業対象における拒否率が閾値より大きいことが明らかとなった場合、ト
ークン共有プロトコルの新規反復が開始されうる。別の実施形態においては、あるセット
のバケット(例えばバーストモードバケット)のトークン数が閾値より小さくなった場合
、トークン共有プロトコルの新規反復が開始されうる。いくつかの実装例において、前述
のように、プロトコルの反復はランダムに選択された作業対象からランダムな時間に開始
され、そして集合数情報を交換する作業対象もまたランダムに選択されうる。少なくとも
一実施形態において、連続するトークン共有プロトコル反復があまりにも頻繁に実行され
ることで生じうる負荷を低減するために、トークン共有に関する制限ポリシーが実施され
る。これにより、例えばX秒またはX分毎に、所定作業対象が任意の他の作業対象に対し
譲渡可能な、または任意の他の作業対象から受取可能な最大トークン数が、Tmax個に
制限される。別の実装例において、同一の作業対象ペア間における行き戻りトークン譲渡
をある最大率までに制限する等、別の制限ポリシーが適用されうる。例えば、作業対象W
T1及びWT2は、15分毎に最大K回トークン譲渡に関与してもよい。いくつかの事例
において、作業対象ペアWT1及びWT2の間で、時間Tkより前の特定の時間窓内にあ
るトークン譲渡が起こった場合、時間Tkにおいて新規のトークン譲渡は許可され得ない
図17に示される実施例において、譲渡されるトークン数は、トークン数が多いピアと
トークン数が少ないピアの差の半分として単純計算される。別の実施形態においては、譲
渡サイズは、例えば各作業対象がトークン譲渡に関して最小トークン集合数を有する等(
このため最小レベルに達すると、別の作業対象が自分よりも小さいトークン数を有してい
てもトークンは全く譲渡されない)、別の要因に基づいて決定され、または譲渡されるト
ークン数は、作業対象における最近の作業量レベル、もしくは作業対象におけるプロビジ
ョン能力に少なくとも一部基づきうる。少なくともいくつかの実施形態において、別の作
業対象へのトークンの贈与は任意で行われうる。例えば、所定の作業対象WT1がピアW
T2よりもより多くのトークンを有していたとしても、WT1はWT2に対しトークンを
譲渡する義務はないだろう(例えば、近いうちにWT1において重い作業要求バーストが
起こると予想されるため、別の作業対象へトークンを譲渡することは適切ではない)。
データ複製役割に対応する環境におけるトークン共有
いくつかの実施形態において、前述のように、データベースサービスまたはストレージ
サービスは、クライアントのデータの多数のレプリカを記憶し、そして異なるレプリカは
作業要求の受付制御に関して異なる役割を担いうる。例えば、作業要求が読出し及び書込
みを含む環境において、いくつかのレプリカは読出しだけでなく書込みに対しても受付制
御の責任を担い、一方他のレプリカは読出しのみ対処しうる。このような実施形態におい
て、トークン共有プロトコルが実行されるピア作業対象のグループは、少なくとも一部は
レプリカの役割により決定されうる。図18は、少なくともいくつかの実施形態による、
データパーティションが複製される環境において確立されうるトークン共有ピアグループ
の実施例を示す図である。
オブジェクト2201A、2201B、2201C及び2201D等のデータオブジェ
クト2201(例えば、データベーステーブルまたはストレージボリューム)は、それぞ
れ1以上の論理パーティションを備え、それぞれの論理パーティションに対応して、2つ
以上の物理レプリカが、サービスのデータ耐久性要件に従って記憶されうる。描写された
実施形態において、物理レプリカのうちの1つは「マスタ」レプリカ(または単純にマス
タ)と称され、そして残りのレプリカは「スレーブ」レプリカ(または単純にスレーブ)
と称されうる。描写された実施形態において、マスタレプリカは、書込みを含む作業要求
の受付制御の責任を担い、一方読出し要求は、いずれのレプリカにおいても(スレーブレ
プリカ(複数可)だけでなくマスタにおいても)実行対象として受付けられうる。従って
、所定の論理パーティションに対する書込み要求は、マスタレプリカに向けられ、このマ
スタレプリカにて当該書込みを受付けるか拒否するかに関する判断が行われうる。書込み
が受付けられると、対応するデータ修正は、まずマスタにおいて行われ、それからスレー
ブへ広められうる。図18に示される実施形態において、読出し要求はいずれかのレプリ
カに向けられうる(その結果、スレーブで読まれたあるデータは、直近の書込み要求によ
る変更がスレーブにおいて複製されていないことを考慮すると、最新のものではあり得な
い)。各物理レプリカは、例えばマスタレプリカにはマスタバケット、そして各スレーブ
レプリカにはスレーブバケットセットというように、受付制御用の関連トークンバケット
セットを有しうる。所定の物理レプリカに割当てられた「マスタ」及び「スレーブ」の役
割は、時間と共に変更しうる。例えばマスタへの接続障害または接続切断のため、スレー
ブがマスタ役に昇進しうる。別の実施形態においては、マスタ及びスレーブ役に対応付け
られる責任は異なりうる。例えば、いくつかの実施形態においては、読出しの受付制御も
マスタにおいて行われうる。
図18に示される実施形態において、データオブジェクト2201Aは、物理パーティ
ションO1−P1、O1−P2、O1−P3を有する。所定の論理パーティションOx−
PyのマスタレプリカはOx−Py−Mと称され、k番目のスレーブレプリカはOx−P
y−Skと称される。O1−P1−Mと称されるO1−P1のマスタレプリカは、サービ
スのストレージノード2210Aに属するストレージデバイス2202Aに配置される。
O1−P1−S1と称されるO1−P1のスレーブレプリカは、ストレージノード221
0Bのストレージデバイス2202Bに配置される。データオブジェクト2201Bは論
理パーティションO2−P1及びO2−P2を有し、データオブジェクト2201Cは論
理パーティションO3−P1及びO3−P2を有し、そしてデータオブジェクト2201
Dは論理パーティションO4−P1〜O4−Pnを有する。描写された実施形態において
、一般に同一の論理パーティションの多数のレプリカは、データ耐久性のため、同一のス
トレージデバイスまたは同一のストレージノードに記憶され得ない。このような耐久性由
来の制約を除いては、レプリカは一般に、描写された実施形態において、十分な利用可能
な領域を有するどの(例えば、ランダムに選ばれた)ストレージデバイスまたはストレー
ジノードにでも記憶可能である。例えば、ストレージデバイス2202Aはまた、データ
オブジェクト2201Bの論理パーティションO2−P1のスレーブレプリカO2−P1
−S1と、データオブジェクト2201Cの論理パーティションO3−P1のスレーブレ
プリカO3−P1−S2とを含み、一方ストレージデバイス2202Bは、スレーブレプ
リカO4−P2−S2とマスタレプリカO2−P1−Mとを含み、そして同様にストレー
ジノード2210Bに属するストレージデバイス2202Cは、マスタレプリカO1−P
3−Mと、スレーブレプリカO2−P1−S1及びO4−P1−S1を含む。(空間に限
りがあるため、データオブジェクト2201A〜2201Dのいくつかのパーティション
のいくつかのレプリカのみが図18に示される)。
各物理レプリカは、スレーブ、マスタのいずれも、レプリカに対する作業要求の受付制
御用の各自のトークンバケットセットを有する。例えば、マスタレプリカO1−P1−M
、O2−P1−M、及びO1−P3−Mはそれぞれ、マスタバケットセット2252A、
2252B、及び2252Cを有する。ストレージデバイス2202AのスレーブO2−
P1−S1及びO3−P1−S2は、スレーブバケットセット2272A及び2272B
を有し、一方スレーブO1−P1−S1及びO4−P2−S2はスレーブバケットセット
2272C及び2272Dを有し、そしてスレーブO2−P2−S1及びO4−P2−S
1はスレーブバケットセット2272E及び2272Fを有する。各バケットセットは、
前述のバケットと同様の、例えば1以上の通常モードトークンバケット及び/またはバー
ストモードトークンバケット(場合によっては、複合バーストモードトークンバケットを
含む)を含む、1以上のトークンバケットを有しうる。個別のトークンバケットが読出し
及び書込み用に構成され(例えば、図5に示されるように)、かつスレーブレプリカが書
込みの受付制御には関与しないいくつかの実施形態において、スレーブバケットセット2
272は読出しトークンバケットのみを含み、一方マスタバケットセット2252は読出
しバケット及び書込みバケットの両方を含みうる。
マスタ役及びスレーブ役は異なる受付制御責任を担うことから、描写された実施形態に
おいて、所定のマスタレプリカは他のマスタレプリカのみとトークン共有プロトコルに関
与することが許され、同様に、スレーブレプリカは他のスレーブレプリカのみとトークン
を共有しうる。従って、図18に示されるレプリカは、トークン共有ピアグループ224
2A及び2242Bの2つに分類されうる。トークン共有ピアグループ2242Aは、マ
スタO1−P1−M、O2−P1−M、及びO1−P3−M等の、あるデータオブジェク
トセットのマスタレプリカを含みうる。オブジェクト2201A〜2201Dの、図18
に図示されていない別のマスタレプリカは、グループ2242Aに同様に含まれうる。ト
ークン共有ピアグループ2242Bは、スレーブO2−P1−S1、O3−P1−S2、
O1−P1−S1、O4−P2−S2、O2−P2−S1、及びO4−P1−S1を(図
18に図示されていない別のスレーブレプリカと同様に)有しうる。従って、描写された
実施形態において、マスタレプリカは他のマスタとトークン集合数情報を交換し、他のマ
スタへトークンを譲渡し、他のマスタからトークンを受理し、そしてスレーブレプリカは
他のスレーブとトークン集合数情報及び/またはトークンを交換しうる。マスタはスレー
ブよりも多くの受付制御責任を担うことから、マスタにおけるトークンの損失または獲得
は、スレーブにおけるトークンの損失または獲得とは異なる影響を与えうるという仮定の
ように、例えばスレーブのトークン値と比較したマスタのトークン値に関する仮定が、こ
のような制限に反映されうる。いくつかの実施形態においては、このような役割ベースの
制限は実施され得ないため、マスタはさらに、または代わりに、スレーブへトークンを譲
渡し、その反対も行われうる。
二次インデックスのためのトークン共有
いくつかの実施形態において、トークンベースの受付制御は、最近人気の様々な種類の
「NoSQL」サービスのいずれかの非リレーショナルデータベースサービスに対し実行
されうる。多数のこのようなデータベースサービスにおいて、一般に所定のテーブルの異
なる行は、異なる列コラムセットを有しうる。従って、少なくともいくつかの事例におい
て、各行は(主キー、値)対とみなされ、主キーコンポーネントは一次インデックスに使
用され、一方値コンポーネントは各コラムに対応する値のある任意集合を含みうる。多く
の場合にクライアントは、自分の非リレーショナルデータの二次インデックス、すなわち
主キー以外のコラムのインデックスの使用を所望しうる。いくつかの実施形態において、
このような二次インデックスは、導出テーブルを使用して実装されうる。例えば、所定の
テーブル(ベーステーブルと称されうる)に対応するデータの少なくともあるサブセット
は、二次インデックスを介した素早いアクセスに対応する導出テーブルとしても編制され
うる。いくつかの事例においては、ベーステーブルの全てのコラムが導出テーブルに複製
されることはない。いくつかの実施形態において、ベーステーブル及び1以上の二次イン
デックスに使用された導出テーブルは、受付制御用のトークンバケットをそれぞれ有する
1以上の論理及び/または物理パーティションをそれぞれ含みうる。いくつかの実施形態
において、ベーステーブルのパーティション及び導出テーブルのパーティションは、前述
のプロトコルと同様のトークン共有プロトコルのピアとして関与しうる。いくつかの実装
例において、ベーステーブルのそれぞれのサブセット(例えば、それぞれのパーティショ
ン)に対して、個別の二次インデックス(及び個別の導出テーブル)が設定されうる。別
の実装例においては、ベーステーブルの全てのパーティションに対応するデータを含む単
一の導出テーブルが、所定の二次インデックスに対して設定される。後者のシナリオにお
いて、ベーステーブル全体(ベーステーブルのサブセットではなく)に対応するデータに
アクセス可能になるため、二次インデックスは「グローバル二次インデックス」またはG
SIと称されうる。
図19は、少なくともいくつかの実施形態による、二次インデックスの作業量管理に対
応するための、データベースサービスにおけるトークン共有の使用の実施例を示す図であ
る。描写された実施形態において、ベーステーブル2310はN個のパーティションBT
−P1、BT−P2、・・・、BT−PNを含む。導出テーブル2320はベーステーブ
ルのGSIに対応するように設定され、かつ当該導出テーブルはパーティションGSIT
−P1、GSIT−P2、・・・、GSIT−PQを含む。図19においてレプリカは図
示されていないが、いくつかの実装例において、ベーステーブル2310及び/または導
出テーブル2320のパーティションは、データ耐久性のために複製されうる。一般に、
所定のベーステーブル用に設定された各GSIに対し、別の導出テーブルが作成されうる
。ベーステーブルパーティションに関してはBTPC1、BTPC2、・・・と称される
構成要素により、そして導出テーブルに関してはSIPC1、SIPC2、・・・と称さ
れた構成要素により示されるように、ベーステーブルの各パーティション及び導出テーブ
ルの各パーティションは、各自のプロビジョン能力を有する。描写された実施形態におい
て、受付制御判断はいずれのテーブルの各パーティションに対し独立して行われ、そして
各パーティションはトークンバケットのセット(1以上の通常モードトークンバケット及
び/またはバーストモードトークンバケット)を有しうる。いくつかの事例において、ベ
ーステーブルに対し導出テーブルとは異なる種類のバケットが実装されうる。例えば、ベ
ーステーブルは複合バーストモードバケットを使用し、一方導出テーブルは単純(非複合
)バーストモードバケットを使用しうる。
少なくともいくつかの実施形態において、クライアントの書込み要求に対応する更新は
、まずベーステーブルにおいて行われ、その後導出テーブルに広げられる。例えば、パー
ティションBT−P1用の更新送信バッファ2325A、パーティションBT−P2用の
更新送信バッファ2325B、パーティションBT−P3用の更新送信バッファ2325
C、及びパーティションBT−PN用の更新送信バッファ2325N等、各ベーステーブ
ルパーティションに対して更新送信バッファが確立されうる。ベーステーブルパーティシ
ョンで行われた更新は、伝達のために(矢印2350で示されるように)対応する送信バ
ッファの待ち行列に入れられ、そして最終的には、導出テーブルのデータに適用される前
に、導出テーブルパーティションの対応する更新受信バッファ2330(例えば、受信バ
ッファ2330A、2330B、2330C、及び2330Q)に受信されうる。一般に
、ベーステーブルと導出テーブルのパーティションの間に一対一のマッピングはあり得な
い。例えば、パーティションBT−P1における所定の更新は、導出テーブルパーティシ
ョンGSIT−P3においてデータを修正することを要求し、一方パーティションBT−
P1における別の更新は、GSIT−P1への修正に至りうる。ベーステーブルにまず適
用され、それから導出テーブルに適用される書込みと対照的に、読出しは、その読出し要
求の性質によって、ベーステーブルへの参照なしに導出テーブルのみで遂行されうる。例
えば、GSIのキーに関して作成された読出しクエリは導出テーブルを使用して応答され
うるが、他のキーに基づいた読出しクエリは、ベーステーブルまたは導出テーブルのいず
れかを使用して応答されうる。
少なくともいくつかの実施形態において、ベーステーブル及び導出テーブルに対し、プ
ロビジョン能力がそれぞれ独立して割当てられうる。従って、一実施形態において、クラ
イアントがテーブル作成を要求する場合、クライアントは下記と同様の命令文の論理的同
値を使用して、ベーステーブルのプロビジョン能力を指定し、確立されるべきGSI(複
数可)の指示を提供しうる。
ハッシュキーk1、毎秒読出し=12、毎秒書込み=8のテーブルT1を作成、
ハッシュキーk2のグローバルインデックスG1;
当実施例において、主キー(この場合ハッシュキー)がk1であり、かつプロビジョン
処理能力が毎秒12読出し処理及び毎秒8書込み処理であるベーステーブルT1が作成さ
れる。クライアントはまた、異なるハッシュキーk2のグローバル二次インデックスG1
が作成されるように指示しているが、当該GSIのプロビジョン処理能力は指定していな
い。このようなシナリオにおいて、データベースサービスは、クライアントにより指定さ
れたベーステーブルの総プロビジョン処理能力に基づいて、ベーステーブルパーティショ
ンにプロビジョン処理能力を割当てうる。そして導出テーブルのパーティション(GSI
に使用される)に対しては、さらなるクライアントとの対話なしに、プロビジョン能力を
割当てなければならないだろう。様々な実施形態において、データベースサービスは、数
多くの異なる手法のいずれかを使用して、導出テーブルのパーティションのプロビジョン
能力を決定しうる。
当実施例の目的のため、2つのパーティションBT−P1及びBT−P2がベーステー
ブルに設定され、そして2つのパーティションGSIT−P1及びGSIT−P2がイン
デックスG1に対応する導出テーブルに設定されると仮定する。一手法において、クライ
アントに指示された総プロビジョン能力は、一緒に用いられるベーステーブルと導出テー
ブルの両方で処理されるべき読出し及び書込みの数を表すと仮定されうる。この場合、1
2読出し/秒はBT−P1、BTR−P2、GSIT−P1、及びGSIT−P2のそれ
ぞれに対し3読出し/秒に分割され、8書込み/秒は同様に当該4つのパーティションの
それぞれに対し2書込み/秒に分割されうる。別の手法において、データベースサービス
は、クライアントが要求したプロビジョン能力はベーステーブルにのみ適用し、そして導
出テーブルのパーティションにおける追加の読出し及び書込みはプロビジョニングされる
必要があると仮定しうる。この2つ目の手法において、BT−P1及びBT−P2のそれ
ぞれに、6読出し/秒及び4書込み/秒のプロビジョン能力が割当てられ、一方GSIT
−P1及びGSIT−P2のそれぞれには、「v」読出し/秒及び「w」書込み/秒のプ
ロビジョン能力が割当てられうる。v及びwは、いくつかのヒューリスティックに基づい
て、または同様のGSIによる以前の経験に基づいて、推定されうる。
いくつかの実施形態において、クライアントはGSIに対し明確にプロビジョン能力を
指定(及び支払い)可能でありうる。例えば、クライアントはテーブルの作成を要求する
際、以下の論理的同値を指定しうる。
ハッシュキーk1、毎秒読出し=12、毎秒書込み=8のテーブルT1を作成、
ハッシュキーk、毎秒読出し=6、毎秒書込み=6のグローバルインデックスG2;
当実施例において、クライアントはGSIに所望するプロビジョン読出し及び書込み率
を、ベーステーブルのプロビジョン読出し及び書込み率とは別に指示し、そしてこれに応
じてデータベースサービスが、ベーステーブル及び導出テーブルのパーティションにプロ
ビジョン能力を割当てうる。いくつかの実装例において、ハッシュキー以外のインデック
スキー(例えば、範囲キー)がさらに、または代わりに指定されうることに留意されたい
。少なくとも一実施形態において、既存のテーブルに対しGSIが作成されうる。例えば
クライアントは、ベーステーブルが作成される時に必要とするGSIのセットに決める必
要はないだろう。
時間と共に、ベーステーブルのパーティション及び導出テーブルのパーティションに対
する作業量は大幅に変動し、そして所定の時間間隔において、読出し及び/または書込み
要求は、両種類のテーブルのパーティション中に不均一に分配されうる。空間的不均一性
による悪影響(作業要求拒否等)を低減するために、ベーステーブル2310及び導出テ
ーブル2320の全てのパーティションは、単一のトークン共有ピアグループ2342の
構成員となる。よって、パーティションBT−Px及びGSIT−Pyはそれぞれ、各自
のトークンバケットのトークン集合数情報の交換に関与し、そして双方の合意に基づいて
前述のようなトークン譲渡に関与しうる。
例示的トークン共有メッセージシーケンス
図20a〜20dは、少なくともいくつかの実施形態による、トークン共有プロトコル
の関与者間の例示的メッセージシーケンスの流れを示す図である。前述のように、トーク
ン共有プロトコルにより、1つの作業対象(例えば、テーブルパーティション)は、第二
作業対象とトークン集合数情報の交換を開始し、そして双方合意後、トークンの論理的譲
渡(すなわちトークンオブジェクトの移動は全くなしに、両作業対象のトークン集合数の
変更)が行われうる。本明細書において、集合数情報交換を開始する作業対象は「トーク
ン共有イニシエータピア」またはTSIPと称され、一方集合数情報の受信者は「トーク
ン共有パートナーピア」またはTSPPと称されうる。図20a〜20dに示される実施
形態において、TSIP2402とTSPP2405の間で、少なくとも三種類のメッセ
ージ、トークン共有要求メッセージTSReq、トークン共有受付メッセージTSAcc
、及びトークン共有拒否メッセージTSRejが流れうる。
図20aに描写された対話において、TSIP2402は選ばれたTSPP2405へ
TSReqメッセージ2410を送信する。TSReqメッセージ2410は、TSIP
2402の特定バケット(例えばバーストモードバケット)のトークン集合数を示す情報
を含みうる。いくつかの実装例において、TSReqメッセージはまた、TSIPが取得
を所望する追加トークン数の指示も含みうる、または場合によっては、TSIPがTSP
P2405に提供しうるトークン数の指示も含みうる。これに応じて、TSPP2405
は受付メッセージTSAcc2420を送信する。TSAccメッセージ2420は、例
えば、TSPPのトークン集合数、及び/またはTSPP2405がTSIP2402に
提供する意思のあるトークン数(またはTSPPがTSIPから受取る意思のあるトーク
ン数)を示しうる。描写された実施形態において、TSReq及びTSAccが交換され
た後、TSIP及びTSPPの両者は、双方合意譲渡に従って、それぞれのトークン集合
数を修正しうる。
図20bに描写された対話において、TSIP2402は同様のTSReqメッセージ
420を送信し、しかしこの事例においてTSPP2405は、提案されたトークン譲渡
を当該TSPPは受入れられないことを示す拒否メッセージTSRej2430をTSI
Pに返信する。これに応じて、TSIP2402は、自身のニーズ次第で、ある別のパー
トナーピアとトークン集合数情報交換の開始を試みうる、またはトークン共有プロトコル
の別の反復が開始されるまで待ちうる。いくつかの実装例において、TSReqメッセー
ジに対するTSPPからの返答が特定の時間窓内にない場合、拒否に相当するとみなされ
うる。一実施例において、TSIP2402は、TSPP2405が要求したトークン譲
渡に対応不可能であると想定する前に、数回TSReqメッセージを再送しうる。
図20cにおいて、TSPP2402はTSPP2405に対し、同種類の情報(例え
ば、TSPPのトークン集合数、及び任意で、要求したトークン譲渡の性質またはサイズ
の指示)を含むTSReq2410Aを送信する。TSPP2405は要求を受信し、そ
して修正申込み、すなわちTSReq2410Aに示される内容と異なる内容の譲渡の要
求を行うことを決断する。よって、TSPP2405は、TSPPのトークン集合数と、
TSPPが所望するトークンの譲渡方向及び譲渡数の指示とを示す別のTSReq241
0Bを返信する。TSIP2402はTSReq2410Aを受信し、修正譲渡案を受入
れるためにTSAccメッセージ2420を送信し、そして両サイドにおいてそれぞれの
トークン集合数が適宜調整されうる。
図20dにおいて、TSPP2402はTSReq2410Aを送信し、そしてTSP
Pは、図20cに示される方法と同様の方法で、自身のTSReq2410Bを返信する
。この事例において、TSIP2402はTSReq2410Bを拒否し、そしてTSP
P2405に拒否を知らせるために拒否メッセージTSRej2430を送信する。
異なる実施形態において、図20a〜20dに示される種類の対話に対し、変更及び拡
張が実行されうることに留意されたい。例えば、いくつかの実施形態においては、TSA
ccメッセージが送信された後、追加の受入確認メッセージが返信されうる。一実装例に
おいて、TSRej拒否メッセージを送信する際、送信者は受信者に対し、どの他の作業
対象が拒否したトークン譲渡の良い候補者になりうるか(例えば、他の作業対象との最近
の通信に基づいて)に関するヒントを提供しうる。別の実装例において、TSIPは、所
望する譲渡トークン数、または所望する譲渡方向を自身のTSReqメッセージにおいて
示し得ない。その代りTSIPのトークン集合数を示す情報のみが提供され、いずれの方
向でも譲渡は適切か否かの判定がTSPPに委ねられうる。このようなシナリオにおいて
、TSPPによりどの譲渡も適切ではないと決定された場合、TSPPは単に拒否メッセ
ージを送信するか、またはTSReqを完全に無視しうる。そしてTSPPによりトーク
ン譲渡が適切であると決定された場合、図20cまたは20dのように、TSPPは自身
のTSReqをTSIPに対し返信しうる。いくつかの実施形態において、TSIPは、
追加トークンが必要な場合にのみTSReqメッセージを送信し、自身のトークンの一部
を使用できる場合は送信しないように構成されうる。別の実施形態においては、TSIP
は、TSIPが追加のトークンを必要とする、または他にトークンを譲渡する意思がある
ことを示すTSReqメッセージを送信しうる。
トークン共有方法
図21は、少なくともいくつかの実施形態による、バーストモード処理のトークン共有
に対応するために行われうる処理態様を示すフロー図である。構成要素2501に示され
るように、通常モードバケット及びバーストモードバケットを含むトークンバケットは、
トークン共有グループの構成員として選定された、いくつかの作業対象(テーブルパーテ
ィション等)それぞれの受付制御用に構成されうる。いくつかの実施形態において、トー
クン共有グループの構成員は暗黙の存在でありうる。例えば、所定のテーブルの全てのパ
ーティションは、デフォルトでトークン共有グループの構成員とみなされうる。いくつか
の実施形態において、構成員はストレージオブジェクトの所有権に基づきうる。例えば、
特定クライアントに所有される全てのテーブルの全てのパーティションは(二次インデッ
クスに使用される任意の導出テーブルと同様に)、トークン共有グループの構成員とみな
されうる。別の実施形態においては、クライアントは、所定のトークン共有グループに含
めたい特定の作業対象を指示可能である。いくつかの実施形態において、いくつかの異な
る協働クライアントエンティティは、それぞれの作業対象をトークン共有グループに含め
ることを決定しうる。図18の説明で前述されたように、データオブジェクトが複製され
、かつ異なるレプリカが受付制御に関する異なる役割(マスタ及びスレーブ役)に割当て
られたいくつかの実施形態において、所定のトークン共有グループは、1つの役割に対応
するレプリカのみを含み、他の役割に対応するレプリカは含まない。いくつかの実施形態
において、トークン共有は、特定の種類のトークンバケットにのみ許可されうる。例えば
、いくつかの実装例において、バーストモードバケットのみがトークン共有に関与可能で
ある、または読出しトークンバケットのみがトークン共有に関与可能である。
いくつかの実施形態において、トークン共有プロトコルが、図17に示される方法と同
様の方法で、反復して実行されうる。所定の作業対象W1は少しの間、受信作業要求の受
付制御判断を行い、そして受付けた作業要求に対応する作業を実行する等、一般的な処理
(トークン共有と関係のない処理)を行いうる。前回の反復からある長さの時間が経った
こと、W1の1以上のバケットのトークン数が閾値レベルに達したという判断、及び/ま
たはW1における作業要求の拒否率が閾値レベルに達したという判断等、1以上の基準が
満たされた結果(構成要素2504)、トークン共有プロトコルの反復が開始されうる。
描写された実施形態において、プロトコルの反復の間、W1は実現する可能性のあるト
ークン譲渡のパートナーピア作業対象を連続的に1以上特定し、そして1以上のトークン
共有メッセージを一度に1つのパートナーに対し送信する(例えば、図20に示される方
法と同様の方法で)。W1及びパートナーの1以上のバケット(例えば、バーストモード
バケット)のトークン集合数が比較され、そしてW1とパートナーの間でいくつかのトー
クンを譲渡するか否かに関する決定が、これら2つの作業対象の合意により行われうる。
よって、構成要素2507に示されるように、W1は、トークン共有グループの構成要素
のある作業対象を、実現する可能性のあるトークン譲渡に関して連絡を取る次のパートナ
ーW2として選択しうる。様々な実施形態において、どの具体的な作業対象が選ばれるべ
きかを特定するのに異なる技術が使用されうる。例えば、いくつかの実施形態において、
ゴシップコントロールが使用され、そしてパートナーはランダムに選択されうる。別の実
施形態においては、トークン共有グループの作業対象の中から一番長い時間W1が連絡を
取っていなかった特定の作業対象を選ぶ(「最長未連絡時間」手法と称されうる)等、よ
り決定論的選択技術が使用されうる、またはラウンドロビン手法が使用されうる。一実装
例において、特定の時間窓の間に、イニシエータと所定の作業対象の間でトークン譲渡が
起こっていない場合にのみ、所定の作業対象はパートナーとして選択可能でありうる。
トークン譲渡により影響を受ける可能性のあるバケット(複数可)のトークン集合数を
比較するために、パートナーピアと1以上のメッセージが交換されうる(構成要素251
0)。いくつかの実施形態において、メッセージ(複数可)は、トークン集合数情報の代
わりに、またはトークン集合数情報に加えて、要求トークン数、または譲渡において受入
れ可能なトークン数範囲、ならびに所望するトークン譲渡方向も示しうる。少なくとも一
実施形態においては、トークン集合数の比較は必要ではないだろう。その代りに、例えば
、パートナーピアにいくつかのトークンを提供するか、またはパートナーピアにいくつか
のトークンを要求するかに関する決定が、イニシエータピアW1のトークン数に基づいて
、または他の基準もしくは閾値に基づいて、行われうる。同様に、このような実施形態に
おいて、パートナーピアからの応答も、トークン数の比較なしで生成されうる。イニシエ
ータピアW1またはパートナーピアW2において1以上の基準が使用され、トークン譲渡
は合意されるべきか否か、もし合意されるのであれば、いくつのトークンが譲渡されるべ
きか(すなわち、譲渡サイズ)、そしてどちらの方向に譲渡されるべきか(譲渡方向)が
決定されうる。例えば、いくつかの実施形態において、W2等の所定の作業対象は、W2
のトークンバケット集合数がある閾値より下である場合、W2がW1よりも多くのトーク
ンを有していたとしても、トークンを譲渡する意向を持ち得ない。または、W2が過去の
傾向から近い将来に作業要求のバーストを予測している場合、W2はW1にトークンを贈
与する意向を持ちえない。いくつかの実施形態において、作業対象は、単純にトークン集
合数の違いに基づいてトークンを共有するように構成されうる。例えば、W2がW1より
多くのトークンを有する場合、W2はいくつかのトークンをW1と共有(例えば、図17
に示されるようにトークン集合数の違いの半分を譲渡)しなければならない。少なくとも
一実施形態において、「スラッシング」動作(例えば、所定の作業対象ペア間で行き戻り
の激しい譲渡)を避けるために、所定の作業対象間の譲渡の回数(または譲渡されるトー
クン数)は、特定の率を超えては許可され得ない。譲渡サイズは、イニシエータピアとパ
ートナーピアの間の合意により決定されうる。いくつかの実施形態において、ピアのうち
の1つが少なくともTトークンを与えてもよいという場合にのみ、トークン譲渡は実施さ
れうる。Tはプロトコルの設定可能なパラメータでありうる。従って、非常に小さい数の
トークンを譲渡しようとしても意味がないとみなされうる。
トークン譲渡基準が満たされた場合(構成要素2514にて判定)、決定された譲渡サ
イズに等しい数のトークンが、当該作業対象のうちの1つの作業対象(例えば、イニシエ
ータまたはパートナーのいずれか)の1以上のバケットに追加され、そして等しい数のト
ークンが、もう一方の作業対象の1以上のバケットの対応セットから取除かれうる(構成
要素2518)。ほとんどの場合、トークンはトークン集合数の多いピアからトークン集
合数の少ないピアへと譲渡されうる。しかしながら、少なくともいくつかの実施形態にお
いて、逆の方向の譲渡も許容されうる(例えば、一例示的シナリオにおいて、W1がW2
よりも少ないトークンを有していても、W2が予測される大きなバーストを見越したトー
クンを要求した場合、W1はW2にトークンを譲渡しうる)。
描写された実施形態において、トークン譲渡が合意されたか否かに関わらず、他のパー
トナー作業対象に連絡を取るか否かに関する決断が下されうる。例えば、いくつかの実施
形態において、W1はNトークンの獲得を所望するが、しかしW2からはMトークンのみ
(M<N)が入手可能であったため、W1は追加のトークンを他のパートナーから取得す
ることを試みることを望む場合がある。いくつかの実施形態において、所定の時間内にW
1等の所定のイニシエータが連絡しうる異なるパートナーの数に関して、上限が設定され
うる。追加のピアと連絡を取る場合(構成要素2522にて決定)、例えば構成要素25
07に関して前述された手法と同様の手法を使って、次のパートナーが特定され、そして
構成要素2510、2514、及び2518に対応する処理が次のパートナーと一緒に行
われうる。
追加のパートナーと連絡を取らない場合(同様に構成要素2522にて決定)、例えば
イニシエータが所望する数のトークンを取得(または贈与)できた場合、トークン共有プ
ロトコルの反復は完了したとみなされうる(構成要素2526)。描写された実施形態に
おいて、イニシエータは、次の反復が開始されるまで通常処理を再開し(構成要素250
4)、次の反復が開始されると、構成要素2507以降に対応する処理が繰り返されうる

共有リソースの余剰能力を表すトークンの分配
前述のように、いくつかの実施形態において、データベースサービスにより管理される
いくつかのデータベーステーブルパーティション等、所定のネットワークアクセス可能な
サービスのいくつかの作業対象は、クライアント要求に応じて行われる作業を成し遂げる
ために、1以上の共有リソース(例えば、ディスクドライブまたは他のストレージデバイ
ス)を使用するように構成されうる。一般に、共有リソースに作業対象を割当てる場合、
サービスは、共有リソースのいずれかにより対応可能な処理能力限度が、作業対象のプロ
ビジョン能力の合計を確実に超えるようにする。バケット集合数が処理能力を表すいくつ
かの実施形態において、これは、共有リソースは追加作業要求を処理可能であっても、1
以上の作業対象は受信作業要求を受付できない(例えば、バーストモードバケットの使用
にも関わらず)というシナリオに帰着しうる。よって、少なくともいくつかの実施形態に
おいて、共有リソース(複数可)の余剰処理能力を表すトークンが、後述される公平な方
法で、作業対象間に分配されうる。図22は、少なくともいくつかの実施形態による、リ
ソースを共有する作業対象のプロビジョン能力の合計より大きい処理能力限度を有する共
有リソースの実施例を示す図である。
図22に描写された実施形態において、リソース3044は、少なくとも4つの作業対
象3001A、3001B、3001C、及び3001Dにより共有される。これらの作
業対象は、リソース3044に関するリソース共有グループ3070の構成員と呼ばれう
る。共有リソース3044は、作業対象のプロビジョン能力の合計(PC1+PC2+P
C3+PC4)を超える処理能力限度SRTL3020を有する。図22の下部のグラフ
は、矢印3051、3052、3053、及び3054で示されるように、時間間隔T0
−T1における当該4つの作業対象のそれぞれの作業要求到着率を示す。示されるように
、作業対象3001Aの作業要求到着率W1は、時間間隔T0−T1の間、プロビジョン
能力PC1よりも低い。作業対象3001Bの作業要求到着率W2は、時間間隔の大部分
の間、プロビジョン能力PC2を超えている。そしてその結果、拒否率R2で示されるよ
うに、いくつかの作業要求が拒否されている。このような拒否は、各作業対象において、
前述のようなバーストモードトークンバケットが使用されても起こりうる。作業対象30
01Cは、ゼロ到着率W3で示されるように、作業要求の受信が全くない。作業対象W4
においては、到着率W4は、時間間隔T0−T1の一部でプロビジョン能力を超えるが、
しかし拒否は起こっていない(例えば、バーストモードトークンバケットの使用の結果)
いくつかの実施形態において、トークン分配器3080は、共有リソース3044の未
使用処理能力を表す任意の追加トークン(すなわち、バケット補充率に基づいて既に生成
されたトークンの数を超えるトークン)が、所定の時間帯においてリソース共有グループ
の作業対象3001間に分配されるべきか否かを決断するように構成されうる。さらに、
示された実施形態において、トークン分配器3080は、各作業対象に提供されるべきこ
のようなトークンの数を決定する責任を担いうる。いくつかの実施形態において、「余剰
」トークンは必要に応じて作成され、一方別の実施形態においては、共有リソースに対応
付けられたバケットが共有オブジェクトの処理能力を表すトークンを含むように構成され
、そして余剰トークンはこのようなバケットから分配されうる。
トークン分配器3080は、作業対象のそれぞれのプロビジョン能力、ならびに作業対
象3001のいくつかの最近の活動の計量(すなわち、作業要求到着率)という要因も考
慮する、公平な分配ポリシーを実施しうる。少なくともいくつかの実施形態において、所
定のクライアントが特定の作業対象にアクセスするのに請求される金額は、当該作業対象
のプロビジョン能力の関数であるため、それぞれのプロビジョン能力は、分配アルゴリズ
ムに因数として含まれうる。従って、作業対象を管理するサービスは、少なくともある程
度、リソース共有グループ3070の構成員のプロビジョン能力に準じて、共有リソース
の未使用能力に関連する余剰トークン等の資産または特典の分配を試みうる。同時に、最
近全く作業要求を受信していない3001C、または最近少しの作業量を受けた作業対象
3001A等の作業対象にトークンを分配することは特に有意義ではなく、このような軽
い負荷の作業対象はいかなる追加のトークンを受けても有効利用できないことから、トー
クン分配器3080は最近の作業量レベルを考慮しうる。いくつかの実施形態において、
様々な作業対象における最近の時間帯にわたる拒否率、今後予期される作業要求到着率等
、他の要因も考慮されうる。
少なくともいくつかの実施形態において、トークン分配器3080は、ある時間間隔に
おけるリソース共有グループの様々な構成員に関する到着率の計量を収集し、それからそ
の次の時間間隔においてトークンを分配するか否か、及びどのように分配するかを決定し
うる。従って、トークン分配器は、時間帯Tm(例えば、T0−T1)における作業対象
に関する到着率の比、ならびに作業対象に関するプロビジョン処理能力の比を決定しうる
。少なくともいくつかの実施形態においては、到着率及びプロビジョン処理能力のいずれ
の比も必ずしも計算される必要はなく、その代りに到着率及びプロビジョン処理能力を示
す、または到着率及びプロビジョン処理能力に関連する他の計量が使用されうる。そして
時間帯Tnにおける受付制御用に作業対象間で分配されるトークンの合計数が、共有リソ
ース3044の処理能力限度に少なくとも一部基づいて決定されうる。例えば、一実施形
態において、当該トークン合計数は、作業対象のプロビジョン能力の合計(例えば、図2
2の実施例のPC1+PC2+PC3+PC4)を、共有リソースの処理能力限度(図2
2のSRTL3020)から減じることにより計算されうる。トークンの合計数は、少な
くとも(a)それぞれの作業要求到着率の比または計量、及び(b)作業対象のプロビジ
ョン能力に応じて、作業対象に分配されうる。それから追加のトークンは、作業対象のバ
ケット補充率に基づいて生成されうるトークンと共に、時間帯Tnに(及び/またはその
後の時間帯に)要求受信作業対象において受付制御に使用されうる。少なくともいくつか
の実施形態において、余剰トークンは作業対象がバーストモード処理に対処するのを手伝
うことを第一目的としうるため、作業対象のバーストモードトークンバケットにのみ余剰
トークンは分配されうる。別の実施形態においては、トークンは、バーストモードトーク
ンバケットと同様に、またはバーストモードトークンバケットの代わりに、通常モードト
ークンバケットに分配されうる。いくつかの実施形態において、トークンは読出しトーク
ンバケット等の特定の種類の作業要求に関するトークンバケットに分配されうる。
作業要求到着率に加え、トークン分配器が決断する際に考慮しなければならないプロビ
ジョン能力を含む他の要因は、時間間隔ごとに変化しうることに留意されたい。例えば、
いくつかの実施形態において、クライアント(またはサービス)は任意の時点に所定の作
業対象のプロビジョン能力を変更しようと決断しうる。さらに、所定のリソースへのアク
セスを共有する作業対象の数も変化しうる。例えば、いくつかの実施形態において、スト
レージデバイスを共有するために任意の時点にテーブルパーティションが追加されうる、
または既存のパーティションが削除されうる。従って、このような実施形態において、ト
ークン分配器は、作業要求到着率の計量を取得することに加えて、様々な種類の設定変更
の経過を記録する必要がありうる。
いくつかの実施形態において、リソース共有者に分配すべきトークン数を決定する際、
いくつかの異なる共有リソースの処理能力限度が考慮されうる。図23は、少なくともい
くつかの実施形態による、サービス(データベースサービスまたはより一般的なストレー
ジサービス等)のストレージノードにおいて作業対象により共有されうる異なる種類のリ
ソースの実施例を示す図である。示されるように、ストレージノード3110は、それぞ
れプロビジョン能力PC1、PC2、及びPC3を有する少なくとも3つのデータオブジ
ェクトパーティション(すなわち作業対象)O1−P1、O2−P3、及びO3−P2が
記憶される共有ストレージデバイス3102を含みうる。描写された実施形態において、
共有ストレージデバイス3102は、処理能力限度SRTL3120Aを有しうる。
パーティションO1−P1、O2−P3、またはO3−P2に対する作業要求は、スト
レージデバイスに加えて、ストレージノード3310内またはストレージノード外に配置
された別の共有リソースの使用も必要でありうる。例えば、オペレーティングシステムバ
ッファ、ソケット、Iノード、またはアプリケーションレベルオブジェクト(例えば、様
々な種類のロックのいずれか)等の共有データ構造3115は、作業処理を行うのに必要
であり、そしてこのような共有データ構造は、それぞれ各自の処理能力限度SRTL31
20Bを有しうる。描写された実施形態において、共有揮発性メモリ3116(例えば、
ストレージノードのメインメモリ)の一部は作業処理に必要であり、そしてメモリは自身
の処理能力限度3120Cを有しうる。共有処理要素3118(例えば、CPUまたはコ
ア)は、作業要求に対応する作業処理を行うのに使用され、そして処理要素は自身の処理
能力限度3120Dを有しうる。作業要求及び対応する応答は、処理能力限度がSRTL
3120Eのネットワークインターフェイスカード等の共有ネットワークデバイス312
2の使用を要しうる。処理能力限度3120Fの共有ネットワークリンク3132は、作
業要求に必要でありうる。いくつかの事例においては、処理能力限度3120Gの構成デ
ータベース等の外部リソース3136へのアクセスもまた、少なくとも一部の作業処理に
おいて必要とされうる。
描写された実施形態において、余剰トークンが一部または全ての種類のリソースを共有
する作業対象に分配されるか否かに関して決定する際、トークン分配器は、全ての適用可
能な共有リソースのそれぞれの処理能力限度の関数を計算するように構成されうる。いく
つかの事例において、当該計算は、例えば様々なSRTLのうち最小SRTLを特定し、
そしてこの最小値を、共有リソースの組合せに関連する有効処理能力限度として使用する
ことを伴いうる。図23に示される異なる種類の共有リソースの全てが任意の実装例にお
いて使用されるとは限らない。いくつかの実施形態において、図23に示されていない他
の種類の共有リソースが使用されうる。
図24は、少なくともいくつかの実施形態による、リソースを共有する作業対象に分配
する余剰トークンの数を計算するために行われる処理の実施例を示す図である。示される
ように、トークン分配器3080は、有効共有リソース処理能力限度3230を、1以上
の共有リソースのそれぞれのSRTL3220(例えば、3220A、3220B、..
.3220N)の関数f1として計算しうる。例えば、いくつかの実装例において、有効
SRTLとして最小SRTLが選択され、一方別の実装例においては、ある別の関数が使
用されうる。描写された実施形態において、到着率モニタ3227(複数可)は、リソー
ス共有グループの様々な作業対象3201(例えば、3201A、3201B、及び32
01C)における関連作業要求到着率を示す計量3240を特定する責任を担いうる。例
えば、一実装例において、余剰トークン分配に関する決定はN分毎に一度行われるため、
これに応じてN分の時間窓に関して計量3240が特定されうる。いくつかの実施形態に
おいて、到着率モニタ3277は、作業対象のそれぞれの受付コントローラ180内に取
込まれうる。
図24に描写された実施形態において、トークン分配器3080は、共有リソースにお
ける余剰処理能力を表す余剰トークン3240の数を、有効SRTL3230及びリソー
ス共有グループの作業対象のプロビジョン能力の関数f2として特定しうる。従って、一
実装例において、例えば、所定の時間窓Tmにおける有効SRTL3240が毎秒X処理
であり、かつ作業対象のプロビジョン能力の合計(例えば、図24においてPC1+PC
2+PC3)は所定の時間窓Tmにおいて毎秒Y処理であったとすると、(m+1)番目
の時間窓T(m+1)において分配される余剰トークンは、X−Yとして計算されうる。
別の実装例においては、さらに複雑な関数f2が使用されうる。少なくともいくつかのシ
ナリオにおいて、複数の共有リソースのSRTL(ゆえに有効SRTL3230)は、時
間と共に変化しうることに留意されたい。同様に、作業対象のプロビジョン能力もまた、
例えばクライアント要求によって、時間と共に変化しうる。その結果、少なくともいくつ
かの実施形態において、余剰トークン3240の数もまた変動しうる。いくつかの実施形
態における少なくとも一部の時間窓に関して、例えば少なくとも一時的に共有リソースに
おいて利用可能な余剰能力がないというように、所定の時間窓中に分配される余剰トーク
ンの数がゼロでありうることに留意されたい。
分配する余剰トークン3240の数が特定されると、トークン分配器3080は次に(
もしあれば)各作業対象に提供すべきトークンの数を決定しうる。所定の作業対象の分配
余剰トークン(DET)3242(例えば、作業対象3201AにDET3242A、作
業対象3201BにDET3242B、及び作業対象3201CにDET3242C)は
、作業対象の到着率計量3240及び作業対象のプロビジョン能力の関数f3として計算
されうる。時間窓Tmにおける3つの作業対象3201A、3201B、及び3201C
のそれぞれの到着率計量値が、A1、A2、及びA3である例示的シナリオを考察する。
一実装例において、各作業対象kに関して、到着率比は、A_ratio_k=(Ak/
(A1+A2+A3))として特定され、かつプロビジョン能力比は、P_ratio_
k=(PCk/(PC1+PC2+PC3))として特定されうる。さらに、(m+1)
番目の時間窓に分配する余剰トークンの合計数がEであると仮定する。作業対象kに分配
される余剰トークンDETkは、以下のように計算されうる(alphaは定数):DE
Tk=E×((alpha×A_ratio_k)+((1−alpha)×P_rat
io_k)))。当実施例において、alphaは、到着率とプロビジョン能力という2
つの異なる考慮要素に対し与えられる比重を表す。いくつかの実施形態において、トーク
ン分配器3080は、例えば到着率と対応する拒否率との実測傾向に応じて、時間と共に
alphaを調整しうる。少なくともいくつかの実施形態において、m番目の時間窓にお
ける合計到着率が閾値を超える場合にのみ、余剰トークン3240は(m+1)番目の時
間窓において分配されうる。例えば各到着率が作業対象のプロビジョン能力より低い場合
は、余剰トークンは(m+1)番目の時間窓において分配され得ない。一実施形態におい
て、余剰トークンを分配する際、長時間にわたる到着率が考慮されうる。例えば、5分の
時間窓の間に所定の作業対象に分配すべきトークン数を決定する際、トークン分配器30
80は、当該作業対象に関して取得した前の60分間の到着率計量を考慮しうる。いくつ
かの実施形態において、所定の時間間隔に所定の作業対象における到着率がゼロの場合(
例えば、図2の作業対象3001Cは時間間隔T0−T1において遊休状態にある)、そ
の次の時間間隔において当該作業対象に対し、そのプロビジョン能力に関係なく、トーク
ンは全く分配されえない。
共有リソースの余剰能力を表すトークンの分配方法
図25は、少なくともいくつかの実施形態による、リソースを共有する作業対象に余剰
トークンの公平分配を実施するために行われうる処理態様を示すフロー図である。構成要
素3301に示されるように、作業対象セットは、クライアント作業要求に対応する処理
を行う際、1以上の共有リソースを使用するように構成されうる。このような作業対象を
リソース共有グループと称しうる。各共有リソースは、各自の処理能力限度SRTLを有
しうる。例えば前述のものと同様の1以上の通常モードバケット及び/または1以上のバ
ーストモードバケットを含むトークンバケットの各セットは、リソース共有グループの各
作業対象の受付制御用に構成されうる(構成要素3304)。少なくともいくつかの実施
形態において、補充率、最大トークン集合数等、トークンバケットの様々なパラメータは
、作業対象に対応付けられたそれぞれの処理能力に少なくとも一部基づきうる。
作業要求到着率計量、拒否率計量、プロビジョン能力の変更、及び/または共有リソー
スの処理能力限度の変更等、いくつかの計量が、リソース共有グループの構成員及び共有
リソース(複数可)のために収集されうる。いくつかの実施形態において、時間窓ベース
のトークン分配プロトコルが実施され、1以上の時間窓の所定セットにおいて取得された
計量は、後続の時間窓のあるセット間におけるトークン分配に使用される。描写された実
施形態において、時間窓tj+1におけるトークン分配を決定するために、時間窓tjにおい
て計量が収集されうる(構成要素3307)。時間窓tj+1において分配される余剰トー
クンの合計数(DET合計)は、共有リソース処理能力限度(SRTL)及び作業対象の
プロビジョン能力の関数として特定されうる(構成要素3310)。例えば、一実装例に
おいて、有効SRTLが計算され(例えば、複数の共有リソースが考慮されている場合、
個々のSRTLのうち最小のSRTL)、そしてDET合計は、有効SRTLから作業対
象のプロビジョン能力の合計を減じることで計算されうる。
少なくともいくつかの実装例において、特定の時間窓においてDET合計がゼロである
、すなわち分配する余剰トークンが全くない場合もありうる。DET合計がゼロを超える
場合(構成要素3313にて判定)、例えば作業対象のそれぞれの到着率及び/またはそ
れぞれの処理能力に関連する計量の関数として、各作業対象kに提供されるトークンDE
T−kの数が計算されうる(構成要素3316)。例えば、図24の説明に併せて考察さ
れたように、異なる作業対象の到着率計量及びプロビジョン能力計量に比重alphaを
割当てる関数は、DET−k値を取得するために、いくつかの実施形態において使用され
うる。その後、作業対象に対応付けられた1以上のバケットのトークン集合数が、決定さ
れたDET−k値に基づいて調整されうる(構成要素3319)。トークンが追加された
後、受付制御判断が以前のように行われうるが、少なくともいくつかの余剰トークンを受
取った作業対象においては、多くの作業量に対応する能力が向上している。いくつかの実
施形態において、余剰トークンはバーストモードトークンバケットにのみ追加され、一方
別の実施形態においては、余剰トークンは、バーストモードバケットの代わりに、または
バーストモードバケットに加えて、通常モードトークンバケットに追加されうる。少なく
ともいくつかの実施形態において、個別のトークンバケットが、読出し対書込み等の異な
る種類の作業要求用に維持されうる。このような場合、余剰トークンは、いくつかの実施
形態においては、ある種類のバケットにのみ(例えば読出しバケットにのみ、または書込
みバケットにのみ)分配され、別の実施形態においては、全ての種類のバケットに分配さ
れうる。
少なくともいくつかの実施形態において、前述の分配余剰トークン数(DET)を特定
するのに使用される、図24に示される関数f1、f2、及びf3等の様々な関数及び式
は、例えばトークン分配器3080または管理者により、時間と共に調整されうる。例え
ば、トークン分配技術の成果は、高い到着率の時間帯における様々な作業対象の拒否率、
様々な共有リソースの使用レベル等のいくつかの計量を監視することで評価され、これに
応じて到着率計量対プロビジョン能力計量に割当てられる比重alphaが調整されうる
、または時間窓のサイズが調整されうる。
少なくともいくつかの実施形態において、単一または複合トークンバケットと、作業対
象間のトークン共有と、共有リソースの余剰能力の公平分配との使用を含む、前述のよう
な受付制御に関連する様々な技術は、プロバイダネットワークにより提供される複数のサ
ービスにおいて使用されうる。一部または全ての技術の組合せが、所定の実施形態におい
て使用されうる。例えば複合バーストモードトークンバケットの使用は、作業対象間のト
ークン共有及び余剰トークンの分配と組み合わせられうる。インターネット及び/または
その他のネットワークからアクセス可能な1以上のこのようなサービス(様々な種類のク
ラウドベースのストレージ、コンピューティングまたはデータベースのサービス等)を分
散したクライアントセットに提供するために、会社や公的機関等の事業体が構築したネッ
トワークは、プロバイダネットワークと称されうる。所定のプロバイダネットワークには
、プロバイダによって提供されるインフラストラクチャ及びサービスを実装、構成及び配
給するのに必要な物理及び/または仮想化コンピュータサーバ、1以上のストレージデバ
イスをそれぞれ有するストレージサーバ、ネットワーク機器等の集合といった、様々なリ
ソースプールを提供する多数のデータセンタ(異なる地域にわたって分散しうる)が含ま
れうる。その一部が異なるデータセンタまたは異なる地域においてインスタンス化または
実行されうるいくつかの異なるハードウェア及び/またはソフトウェアコンポーネントは
、様々な実施形態において、受付制御技術を実行するために集合的に使用されうる。
バーストモード処理に対するトークンベースの価格設定
いくつかの実施形態において、バーストモードに対応するようにクライアントのために
行われた作業に対して、クライアントは、通常モード処理に使用されるものとは異なる価
格設定方法に基づいて請求されうる。前述のように、いくつかの実施形態において、作業
対象間のトークン共有及び共有リソース能力を表す余剰トークンの分配はまた、バースト
モード作業量に対応するために実施され、そしてトークン共有及び/または余剰トークン
分配に対する請求額もまた、通常モード処理に対する請求額とは異なりうる。図26は、
少なくともいくつかの実施形態による、バーストモード処理のために実行されうる価格設
定マネジャー4080の例示的コンポーネントを示す図である。示されるように、通常モ
ードトークンバケットセット120及びバーストモードトークンバケットセット125の
インスタンスが、作業対象に対し生成されうる。受付コントローラ180は、例えば様々
な実施形態に関して前述のものと同様の技術または技術の組合せを使用して、通常モード
トークンバケットセットの1以上のプロビジョン能力バケット420のトークン集合数、
及び/またはバーストモードトークンバケットセット125の1以上のバーストモードバ
ケット422のトークン集合数に基づいて、受信作業要求を受付けるか否か決定する責任
を担いうる。
図16に示される実施形態において、価格設定マネジャー4080は、バーストモード
トークンバケットセット125及び/または通常モードトークンバケットセット120の
トークンの使用に対応付けられた1以上の価格設定ポリシーを実施するように構成されう
る。1以上のバーストモード価格設定ポリシー4005B及び1以上の通常モード価格設
定ポリシー4005Aが、作動モードに依存して、1以上のバケットのトークンの消費及
び/または譲渡に関してクライアントに請求する額を決定するのに使用されうる。通常モ
ード処理に関して、例えばプロビジョン処理能力までの率のトークン使用に関しては、通
常モード価格設定ポリシー4005Aに従った不変すなわち固定価格が適用され、一方バ
ーストモード価格設定ポリシー4005Bは、後述のように少なくともいくつかの実施形
態において、より変動的でありうる。価格設定マネジャー4080は、受付コントローラ
180からトークン集合数の変化に関する情報を収集し、及び/または受付コントローラ
180に受付制御判断を行う際に考慮すべき制約に関する情報を知らせるように構成され
うる(例えば、価格設定マネジャー4080は、バーストモード間の特定のバーストモー
ドバケット422のトークンの消費に対し、特定のバーストモード価格設定ポリシーに従
って、受付コントローラの判断に影響を与えうるクライアントの予算制約が適用されるこ
とを、受付コントローラに知らせうる)。
いくつかの実施形態において、価格設定マネジャー4080は、いくつかの異なるサブ
コンポーネントを含みうる。例えば、インターフェイスマネジャー4020は、一実施形
態において、クライアント入力に基づいた価格設定ポリシー選択等のクライアントとの様
々な価格設定関連対話に使用されうる、または後述の種類の様々な態様のマーケットプレ
イス取引を行うのに使用されうる、1以上のウェブページ、API、GUI(グラフィカ
ルユーザインターフェイス)、コマンドラインツール等のプログラム的インターフェイス
セットを実行する責任を担いうる。インターフェイスマネジャー4020はまた、いくつ
かの実装例において、価格設定マネジャー4080と受付コントローラ180の間の通信
等、ネットワークアクセス可能なサービスにおけるいくつかの種類の内部対話の責任も担
いうる。いくつかの実施形態において、トークンマーケットプレイスが確立され、これに
より一部のクライアントは、他のクライアントが買い取れる余剰トークンの可給性を宣伝
することが可能になる。少なくともいくつかのこのような実施形態において、いくつかの
種類のマーケットプレイス取引に関して、トークンの価格は不変すなわち固定であり、一
方他の取引に関しては、トークン価格は変動的に決定されうる(例えば、オークションと
同様の技術を使用する、または時間窓に基づく)。描写された実施形態において、価格設
定マネジャー4080のマーケットプレイスマネジャーコンポーネント4040は、マー
ケットプレイス取引に対応する責任を担いうる。
描写された実施形態において、1以上の計量コンポーネント4030は、受付コントロ
ーラ180からトークン使用/消費計量を収集するように構成されうる。少なくとも一実
施形態において、受付コントローラ180の複数のインスタンスが実行され(例えば、各
作業対象に対し1つの受付コントローラインスタンス、またはN作業対象に対し1つのイ
ンスタンス)、そしてこのような実施形態において計量コンポーネントは、複数の受付コ
ントローラ180からトークン使用データを集計しうる。いくつかの実施形態において、
トークンの消費または譲渡に関する価格は、作業要求を遂行するために使用される様々な
リソースのリソース使用レベル(例えば、プロセッサ使用レベル、ストレージデバイス使
用レベル、またはネットワーク使用レベル)に基づいて変動しうる。トークン価格設定が
リソース使用レベルの関数であるこのような実施形態において、計量コンポーネント40
30はまた、ネットワークアクセス可能なサービスに構築されたインフラストラクチャの
様々な部分から使用情報を収集しうる。請求額ジェネレータ4050は、受付コントロー
ラ(複数可)から収集された様々なトークン関連計量を分析し、そして実施されている1
つまたは複数の価格設定ポリシーに基づいて、クライアントに請求する請求額を生成する
ように構成されうる。いくつかの実施形態において、価格設定マネジャー4080は、例
えば価格設定ポリシー詳細及び/または請求履歴情報が保存されうる価格設定データベー
ス4060を含みうる。いくつかの実施形態において、価格設定データベース4060は
傾向分析にも使用され、例えば、以前の価格設定変更に基づいた、及び/または請求履歴
から導き出される使用パターンに基づいた、変動価格設定のコンポーネントを決定しうる
。少なくとも一実施形態によれば、価格設定マネジャー4080の1以上のサブコンポー
ネントは、受付コントローラ180内に取込まれうる。いくつかの実施形態において、価
格設定マネジャー4080は、1以上のコンピューティングデバイスに分散された複数の
ソフトウェア及び/またはハードウェアコンポーネントを含みうる。
トークンベース価格設定ポリシー要素
図27は、少なくともいくつかの実施形態による、トークンベースの価格設定ポリシー
4005の例示的要素を示す図である。いくつかの実施形態において、受付制御に使用さ
れる異なるバケットに、それぞれの価格設定ポリシーが適用されうる。すなわち、クライ
アントが請求される価格は、通常モードトークンバケットセット120の異なるバケット
によって、及び/またはバーストモードトークンバケットセット125の異なるバケット
によって、異なりうる。描写された実施形態において、バケットセットの1以上のバケッ
トに対応付けられた所定の価格設定ポリシー4005に関して、例えばバケットにおける
1以上のトークン集合数変更処理に対するクライアント請求額を決定するために価格設定
ポリシーが使用される条件を示す、1以上の適用基準4105が指定されうる。単純な一
実装例において、例えば、特定の価格設定ポリシー4005がバーストモードバケット4
22から消費される全てのトークンに適用されうる。このようなシナリオにおいて、適用
基準4105は、「消費される各トークンに対しこの価格設定ポリシーを適用する」とい
う論理的同値を単純に示しうる。いくつかの実施形態においては、ある他の1つまたは複
数のバケットのトークン集合数に基づいた基準(例えば「バケットB2のトークン集合数
がB2低−B2高の範囲内にある場合にのみ、バケットB1のトークン消費に対しこの価
格設定を適用する」という論理的同値)、クライアントの予算に基づいた基準(例えば「
C1の残りのバーストモードトークンの予算が価格Aを上回る場合にのみ、C1のバケッ
トB1に対しこの価格設定を適用する」という論理的同値)、時間窓に基づいた基準(例
えば「平日の午前1時から午前6時までの時間帯においてバケットB1から消費されるト
ークンに対しこの価格設定を適用する」)等、より複雑な適用基準4105が指定されう
る。いくつかの事例において、適用基準は使用されるバケットの数及び種類に依存する。
例えば、一部の価格設定ポリシーは、複合トークンバケットがバーストモード受付制御に
も使用されている場合にのみ、所定の共有リソース能力バーストモードバケットB1に対
して適用されうる。
一般的にトークン集合数の変更(例えば、トークン消費または譲渡)に対応付けられた
価格設定は、不変価格設定コンポーネント4108(例えば、特定の時間帯において特定
の料金でバーストモードトークンを特定数まで消費するための先払料金)と、変動価格設
定コンポーネント4111(例えば、平日の異なる時間窓によって変動しうる料金、また
は需要と供給に基づいて変動しうる料金)とを含みうる。描写された実施形態において、
一部の価格設定ポリシーは、不変及び変動価格設定コンポーネントの両方を含み、一方別
のポリシーは、不変コンポーネントのみ、または変動コンポーネントのみを含みうる。少
なくともいくつかの実施形態において、ある特定の種類のトークン譲渡または売買に関す
る変動価格設定は、オークションを利用して実行されうる。少なくとも一実施形態におい
て、少なくとも一部のトークンバケットの価格設定は、需要と供給に基づいて変わりうる
。例えば、入札時に特定のクライアントの付け値が現在のスポット価格以上である場合に
のみ、当該クライアントにトークンが供給されうるという、バーストモードトークンの「
スポット」価格設定ポリシーが実施されうる。
いくつかの実施形態において、複数のクライアントが所定のトークン取引に関与しうる
。例えば、価格設定マネジャー4080がトークンマーケットプレイスを実施する実施形
態において、クライアントC1は、クライアントC1の所有するいくつかのトークン(例
えば、バーストモード処理に使用可能なトークン)が他のクライアントに販売可能である
ことを示したい場合がある。価格設定マネジャー4080は、トークンの可給性を宣伝し
(またはトークンを購入する可能性のある候補者の特定クライアントに知らせ)、そして
別のクライアントC2がC1からトークンを購入しうる。このようなシナリオにおいて、
クライアント間の支払振替は、価格設定マネジャー4080により、例えば描写された実
施形態においてはクライアント間支払振替ポリシー4117(特定種類のトークンバケッ
ト用の、クライアントAの価格設定ポリシーに、クライアントC2の価格設定ポリシーに
、または両クライアントポリシーに含まれうる)に従って、簡易化されうる。クライアン
ト間支払振替ポリシー4117は、例えば、買い手または売り手のいずれかが売買に関し
て負いうるサービス料、及び/またはクライアント間の支払いが処理されるスケジュール
(例えば、1つのスケジュールに従って週に一度蓄積された支払が決済すなわち振替えら
れうる)を示しうる。いくつかの実施形態において、トークンは価格設定目的で、通貨の
論理的同値として使用されうる(少なくとも一時的に)。例えば、クライアントC1はサ
ービスにNトークンの借りがあり(または別のクライアントにNトークンの借りがあり)
、そして当該負債は実際の通貨を使用して、または代替トークンを使用して返済されうる
(例えば、Nトークンの負債は、N+kトークンを振替えることで返済されうる。この時
kトークンは負債の「利息」を表し、負債者が当該負債を返済するのにかかった時間に基
づいて計算される)。異なるクライアントが所有する作業対象も含む多数の作業対象によ
ってトークンが共有されるいくつかの実施形態において、クライアント間支払振替ポリシ
ーはまた、図17に示された例示的トークン共有プロトコル等の前述のものと同様のトー
クン共有技術にも適用可能でありうる。
少なくともいくつかの実施形態において、受付コントローラ180は、少なくとも一部
の種類のトークンバケットに関して、将来の受付制御判断の確実な保証を何も提供できな
い。例えば、前述のように、バーストモード受付制御に関して「ベストエフォート」手法
が使用されるが、一般に作業要求は通常モード間よりもバーストモード間において拒否さ
れる確率が高い。いくつかの実施形態において、価格設定ポリシー4005は、価格設定
ポリシーに従って取得または消費されたトークンに適用されうる1以上のベストエフォー
ト制約4120の指示を含みうる。一例を挙げれば、受付コントローラのベストエフォー
トにもかかわらず、かつバーストモードトークンをいくつか取得するためにクライアント
が負った料金にもかかわらず、例えばバーストモードの間に作業対象が共有物理または論
理リソースの処理能力限度に達した場合、作業要求は拒否または延期されなければならな
い可能性があることを、制約4120はクライアントに知らせうる。よって、ベストエフ
ォート制約4120は、一部の(一般に珍しい)状況において、クライアントのトークン
購入は、クライアントの全作業要求に対する高い受付率または高品質の応答を確保するの
に十分でない可能性があることを示す、クライアントへのリマインダーとして役立ちうる
。いくつかの実施形態において、少なくとも一部のクライアントは、価格設定ポリシー4
005において示される割引ポリシー4124に従って割引を提案されうる。例えば、ク
ライアントに責任のない様々な制約または原因のいずれかにより、クライアントが購入済
バーストモードトークンのX%以下しか使えない場合、一部または全ての購入済バースト
モードトークンがクライアントに返済されうる。一実施形態においては、数量割引(例え
ば、購入済みトークンの総数に基づいた払戻し)に対応可能であり、そして割引ポリシー
4124がこのような割引の料金を示しうる。様々な実施形態において、図27に示され
る一部の種類の要素は、所定の価格設定ポリシー4005に含まれず、及び/または図2
7に示されない他の要素が含まれうる。
トークン価格設定方法
図28は、少なくともいくつかの実施形態による、バーストモード処理の請求額を決定
するために行われうる処理態様を示すフロー図である。構成要素4201に示されるよう
に、描写された実施形態において、前述の種類の1以上のモード(通常モード及びバース
トモード等)で作動するように構成された1以上の作業対象における作業量管理のために
、いくつかのトークンバケットのインスタンスが生成されうる。作業対象において作業要
求を実行対象として受付けるか否かに関する判断は、1以上のバケットのトークン集合数
に基づいて行われ、そして作業要求を受付ける判断は、例えば1以上のバケットのいくつ
かのトークンの消費を伴いうる。構成要素4204に示されるように、一部または全ての
バケットのトークン集合数の変更に至る処理に適用する1以上の価格設定ポリシーは、例
えばクライアントのポリシー選択要求に価格設定マネジャー4080が応じることによっ
て、またはネットワークアクセス可能なサービスの内部構成パラメータに基づいて、決定
されうる。例えば、価格設定ポリシーはクライアントに、バーストモードの間のバケット
B1のトークン消費に関して、1つのバケットB1から別のバケットB2へのトークン譲
渡に関して、バケット補充率及び/または最大トークン集合数限度の短期的または長期的
変更に関して、またはこれらの種類の変更のある組合せに関して、請求される額を示しう
る。一部の価格設定ポリシーはバーストモードの間にのみ適用され、一方他の価格設定ポ
リシーは通常モードの間にのみ適用されうる、または将来のバーストモードに対する備え
に適用されうる(前述のように通常モードバケットからバーストモードバケットへの未使
用トークンの譲渡、作業対象間のトークン共有、または余剰トークンの分配等)。少なく
とも一実施形態において、通常モード価格設定ポリシーは、プロビジョン処理能力を上限
とする作業要求を受付けるのに消費されうるプロビジョン能力バケット420のトークン
に対する定額料金を含みうる。このような料金は、プロビジョン能力バケットから使用さ
れる実際のトークン数にかかわらず、変化し得ない。いくつかの実施形態において、一部
の価格設定ポリシーは、例えば価格設定マネジャー4080において、または価格設定マ
ネジャー4080により実行されるプログラム的インターフェイスを使用して対応されう
るトークンマーケットプレイスを利用して行われる取引に対し適用可能でありうる。
各価格設定ポリシーは、例えば、ポリシーに対する1以上の適用基準(ポリシーが適用
されるバーストモード等の処理モード(複数可)と、ポリシーが適用されるのに満たされ
なければならない他の特定条件とを指定しうる)と、トークン集合数の変更に至る処理に
対応付けられた1以上の不変もしくは変動価格設定コンポーネントまたは価格設定額とを
含みうる。いくつかの実装例において、絶対価格設定額の代わりに、例えば要因の組合せ
による関数の形の価格設定式が、価格設定ポリシーにおいて指定されうる。いくつかの実
施形態において、価格設定ポリシーは、クライアント間支払振替ポリシー、割引ポリシー
等、図27で示されたものと同様の1以上の追加要素を含みうる。価格設定マネジャー4
080は、価格設定ポリシーに対応付けられた様々なバケットにおけるトークン集合数の
変更と、トークン集合数のどの変更一式に対してどの価格設定ポリシーが適用されたかを
示す情報とを、様々な時間帯において収集、集約、記録するように構成されうる(構成要
素4208)。異なる実施形態において、トークン集合数の変更に関するデータ集合に対
し、様々な集約技術のいずれかが使用されうる。例えば、いくつかの実施形態において、
所定のバケットのトークン集合数に関わる全ての変更はそれぞれ記録され、一方別の実施
形態においては、トークン数は定期的にサンプリングされうる、または予定された時間間
隔で収集されうる。いくつかの実装例において、クライアントが全く課金されない一部の
種類のトークン集合数変更がありうることに留意されたい。例えば、少なくとも一部のク
ライアントに対し、一部のトークン処理は無料でありうる。
いくつかの実施形態において、ある時間間隔においてトークン集合数に変更がない場合
、クライアントはバケットのトークンに対して課金されず、一方別の実施形態においては
、クライアントは少なくともある種のトークンに対し、それらが未使用で残ったとしても
(例えば、所定の時間間隔において所定のバケットのトークン集合数が変化しなかったと
しても)課金されうる。一実施形態において、請求額はトークンの異なるカテゴリによっ
て変動しうる。例えば、通常モードの間、またはバーストモードの間、または通常及びバ
ーストの両モードの間、書込みは読出しより料金が高くありうる、またはその逆も同様で
ありうる。描写された実施形態において、1以上のバケットのトークン集合数変更の記録
に少なくとも一部、かつ1つまたは複数の価格設定ポリシーに少なくとも一部基づいて、
クライアントに対し請求額が生成されうる(構成要素4212)。様々な実施形態におい
て、前述のトークンベースの受付制御の一部または全ての異なる態様に対し、例えば複数
のカテゴリのバーストに対応する複合トークンバケットの使用に適用されるポリシー、優
先度ベースカテゴリのトークンバケットに適用されるポリシー等を含む、価格設定ポリシ
ーが選択されうることに留意されたい。
図29は、少なくともいくつかの実施形態による、条件付きバーストモード価格設定に
関連する処理態様を示すフロー図である。描写された実施形態において、バーストモード
バケットセット125は、ローカルバースト限度バケット604及び1以上の共有リソー
ス能力バケット606を含む複数のバケットを備え、そして異なる価格設定ポリシーが複
数のバーストモードバケットのうちの1つのバケットのトークン集合数に、別のバースト
モードバケットの集合数に基づいて、適用されうる。作業対象に対する次の作業要求が受
信される(構成要素4301)。作業対象がバーストモードで作動していない場合(構成
要素4304にて検出)、例えば1以上の通常モードトークンバケットのトークン集合数
に基づいて、通常モード価格設定ポリシーを使用して作業要求に適用される価格設定が決
定される(構成要素4308)。例えば、いくつかの実施形態において、前述のように通
常モードの間、作業対象のプロビジョン処理能力に比例する定額先払料金が、プロビジョ
ン処理能力を作業要求到着率が超えない限り、消費される実際のトークン数に関係なく、
クライアントに課金されうる。
同様に構成要素4304で検出されるように、作業対象がバーストモードで作動してい
る場合、描写された実施形態において、少なくとも1つの共有リソース能力バケット60
6のトークン集合数が特定されうる。1つまたは複数の共有リソース能力バケットが、実
施されている消費ポリシーに基づいて十分な数のトークンを含む場合(構成要素4312
)、作業対象に適用可能なローカルバースト限度バケット604のトークン集合数が次に
確認されうる。描写された実施形態において、ローカルバースト限度バケット604の集
合数は、例えば、作業対象は孤立しているとみなした時の(共有リソースを考慮しない)
作業対象に割当てられた処理能力限度に基づいた利用可能処理能力を示しうる。描写され
た実施形態において、作業要求を実行対象として受付けるための価格設定は、共有リソー
ス能力バケット(複数可)及びローカルバースト限度バケットの両方の集合数に依存しう
る。共有リソース能力バケット(複数可)及びローカルバースト限度バケットの両方が、
それぞれの消費ポリシーに基づいて十分なトークンを含む場合(構成要素4312及び4
316にて判定)、作業要求は受付けられ、1以上のトークンが両方の種類のバケットか
ら消費され、そして第一バーストモード価格設定ポリシーが適用されうる(構成要素43
20)。描写された実施形態において、1つまたは複数の共有リソース能力バケットは十
分なトークンを含むが、ローカルバースト限度バケットは含まない場合、作業要求はなお
実行対象として受付けられうる。1以上のトークンが共有リソース能力バケット(複数可
)から消費され、そして第二バーストモード価格設定ポリシーが適用されうる(構成要素
4324)。共有リソース能力バケット(複数可)及びローカルバースト限度バケットの
両方が十分なトークンを含まない場合、作業要求は拒否、再試行、または延期されうる(
構成要素4328)。受付制御判断が行われ、受付け(構成要素4320または4324
)または拒否(構成要素4328)のいずれかに結果が決まった後、次の受信済作業要求
が、例えば構成要素4301以降に対応する処理を実行することで対応されうる。図29
に示される条件付きバーストモード価格設定手法は、例えば、ローカルバースト限度バケ
ットの最大集合数は控えめに設定され、一方で共有リソース能力バケット(複数可)にお
いてその利用可能処理能力が表される共有リソースは、少なくとも一部の時間帯において
、ローカルバースト限度バケットのみを使用した場合に対応可能な作業要求到着率よりも
高い作業要求到着率に対応可能でありうる環境において使用されうる。共有リソースを使
用するいくつかの作業対象の作業量が時間と共に大幅に変動する場合、ローカルバースト
限度バケットが空であっても、短期バーストに対応するのに十分な能力が共有リソースに
おいて利用可能になる時間帯がありえ、そして少なくともこのようなシナリオにおいては
第二価格設定ポリシーが役立ちうる。図29に示されるものと同様の価格設定技術はまた
、前述の共有リソースの余剰能力を表すトークンの公平分配の技術と共に使用されうる。
図30は、少なくともいくつかの実施形態による、価格設定ポリシーのクライアント選
択を可能にするために実行されうる処理態様を示すフロー図である。構成要素4401に
示されるように、ウェブページ、ウェブサイト、またはAPI等の1以上のプログラム的
インターフェイスが実行され、これによりクライアントは複数の対応価格設定ポリシーの
中から選択することができる。少なくともいくつかの実施形態において、価格設定マネジ
ャー4080のインターフェイスマネジャーサブコンポーネントが、当該インターフェイ
スの実行の責任を担いうる。いくつかの実施形態において、複数の価格設定ポリシーがバ
ーストモード処理において利用可能であり、一方別の実施形態においては、複数のポリシ
ーが通常モード及びバーストモードの両処理において対応されうる。少なくともいくつか
の実施形態において、特定の種類のパラメータ変更(補充率または最大トークン集合数限
度の短期的または長期的変更等)に特定的に適用する価格設定ポリシーは、インターフェ
イスを介して選択可能でありうる。利用可能な価格設定ポリシーの表示、または記入もし
くはパラメータ化可能なポリシーテンプレートが、クライアントに提供されうる(構成要
素4404)。例えば、一実装例において、異なる価格設定ポリシーの様々な要素(図2
7に示される要素等)に関する詳細は、ウェブサイトを介して提供されうる。
作業量のニーズ及び/または予算に基づいて、所定のクライアントは使用する選択ポリ
シー及び/またはパラメータを、例えば実行インターフェイスのうちの1つを使用して提
出した価格設定ポリシー要求を介して、指示しうる(構成要素4408)。このような要
求に応じて、価格設定マネジャー4080は、クライアントのために選択価格設定ポリシ
ー及び/またはパラメータの実行を開始しうる(構成要素4412)。少なくともいくつ
かの実装例において、例えば、価格設定マネジャー4080は、価格設定ポリシーの使用
を開始するために、受付コントローラ180と通信しうる。
図31は、少なくともいくつかの実施形態による、バーストモードトークンのマーケッ
トプレイスを有効にするために実行されうる処理態様を示すフロー図である。描写された
実施形態において、構成要素4501に示されるように、バーストモード受付制御及び/
または通常モード受付制御に使用可能なトークンの宣伝、販売、購入、共有、または譲渡
に関わる様々な種類の取引に対応するために、ウェブページ及び/またはAPI等の1以
上のプログラム的インターフェイスが実行されうる(例えばインターフェイスマネジャー
4020により)。マーケットプレイスマネジャー4040(例えば、価格設定マネジャ
ーのサブコンポーネント)は、実行インターフェイスを介して1以上のクライアントから
、トークンの販売、オークション、または購入の提案等、トークン取引提案の通知を受信
し(構成要素4504)、そして当該提案を他のクライアントに公表または宣伝しうる。
少なくともいくつかの実施形態において、価格設定マネジャー及び/または受付コントロ
ーラは、トークンが必要なクライアント(例えば、最近の時間間隔において、作業要求に
関して通常の拒否率よりも高い拒否率を経験したクライアント)を認識しており、そして
このようなトークン消費候補者とトークン提案を合わせることが可能でありうる。
マーケットプレイスマネジャー4040は、固定価格またはオークションの落札に基づ
いた、あるトークンセットの販売または譲渡に関わる取引等の取引完了の通知を、1以上
のインターフェイスを介して受信しうる(構成要素4508)。これに応じて、描写され
た実施形態において、マーケットプレイスマネジャー4040は、例えば1以上の譲渡元
バケットのトークン数を削減し、及び/または1以上の他のバケットのトークン数を増加
させることによって、影響を受けたバケット(複数可)のトークン集合数を変更しうる(
構成要素4512)。クライアントに課金される請求額(例えば所定のマーケットプレイ
ス取引の買い手クライアント及び売り手クライアントの両方にかかるサービス料を含みう
る)は、取引の詳細及び1つまたは複数の適用価格設定ポリシー4005に従って生成さ
れうる(構成要素4516)。
少なくともいくつかの実施形態において、前述のように、データベーステーブル等の作
業対象は複数の論理パーティションに分割され、そして受付制御は、各パーティションで
使用されているそれぞれの受付制御パラメータセット及びトークンバケットにより論理パ
ーティションレベルにおいて行われうる。例えば、1テラバイトのデータを含む大きなデ
ータベーステーブルは、各自の受付制御用トークンバケットセットを有する、各250メ
ガバイトの4つの論理パーティションで構成されうる。いくつかの実装例において、同様
に前述のように、例えばデータ耐久性のため及び/または高い可用性のために、各論理パ
ーティションの多数の論理レプリカが保持されうる。いくつかのシナリオにおいて、クラ
イアント作業量は必ずしもパーティション間に均一に分散し得ない。その結果、所定の時
点に、ある使用頻度が高いパーティションにおけるトークンバケット(バーストモードバ
ケット422等)の利用可能トークン数は、他の使用頻度の低いパーティションにおける
対応するトークンバケットの利用可能トークン数より大幅に少ない可能性がある。従って
、非常に不均等な作業量により起こりうる作業要求拒否の数を減らすために、異なるパー
ティションの受付コントローラ180(複数可)は、いくつかの実施形態において、図1
6〜図21を参照して説明されたようなトークン共有プロトコルを使用し、そしてパーテ
ィションを所有または使用するクライアントは、パーティション間トークン共有に関する
価格設定ポリシーに従って、トークン共有に対し課金されうる。図32は、少なくともい
くつかの実施形態による、作業対象の異なるパーティション間のトークン譲渡に対して価
格設定を行うために実行されうる処理態様を示すフロー図である。
図32の構成要素4601に示されるように、作業対象(データベーステーブルまたは
論理ボリューム等)は、各自の通常モードバケットセット及び各自のバーストモードバケ
ットセット等、それぞれが各自の受付制御用トークンバケットを有するパーティションの
集合として構成されうる。従って、描写された実施形態において、各パーティションは独
立的に設定可能な受付制御パラメータを有する個別の作業対象としてみなされうる。価格
設定マネジャー4080は、異なるパーティションのバケット間のトークン譲渡に適用す
る価格設定ポリシーを決定するように構成されうる(構成要素4604)。例えば、Nト
ークンをパーティションP1のバーストモードトークンバケットBB1から、パーティシ
ョンP2のバーストモードトークンバケットBB2へ譲渡するための価格設定ポリシーは
、クライアントの入力に基づいて、または設定可能なパラメータに基づいて特定されうる
。このようなトークン譲渡は、トークン集合数が閾値を下回ったことの検出、前回パーテ
ィション間のトークン譲渡の必要性が検討されてから特定の時間が経ったことの検出、作
業要求に対する閾値拒否率の検出等、異なる実施形態において様々な種類のトリガーイベ
ントの発生に基づいて実行されうる。構成要素4608に示されるように、パーティショ
ン間のトークン譲渡を試みるべきであるか否かを調べるトリガーイベントが検出されうる
どれか1つのパーティションのトークン数が閾値T1を下回っているかを調べるために
、サブセットまたは全てのパーティションのトークン集合数が調査されうる。描写された
実施形態において、トークン数が閾値T1を下回るパーティション「p」が見つかり(構
成要素4612にて判定)、かつ別のパーティション「q」のトークン集合数が閾値T2
を上回ることが判明した(構成要素4616にて判定)場合、いくつかのトークンがパー
ティション「q」からパーティション「p」に譲渡されうる(構成要素4620)。いく
つかの事例において、閾値T1を下回るトークン数を有する複数のパーティションが見つ
かり、及び/またはT2を上回るトークン集合数を有する複数のパーティションが見つか
った場合、多数の譲渡元及び譲渡先バケットペアの間でトークン譲渡が開始されうる。例
えば、一実装例において、パーティションp、q、r、sの現在のトークン集合数に関す
る所定の調査において、パーティションp及びrは閾値T1を下回るトークン集合数を有
していることがわかり、一方パーティションqはT2+Nトークンを有していることがわ
かり、そしてパーティションsは譲渡するのに十分なトークンを有していない場合、N/
2トークンがパーティションp及びrに追加され、パーティションqはNトークン分削減
されうる。1つまたは複数の譲渡の記録が保持され、そして最終的に譲渡に関してクライ
アントに請求する請求額が、記録(複数可)及び価格設定ポリシーに基づいて生成されう
る(構成要素4624)。パーティション間でトークンを譲渡するか否かに関する判断が
行われた後(肯定的判断、否定的判断のいずれでも)、次のトリガーイベント及び/また
は異なる譲渡元と譲渡先パーティションペアに対し、構成要素4608以降に対応する処
理が繰り返されうる。
前述のように、少なくともいくつかの実施形態において、受付制御に使用されるトーク
ンバケットはそれぞれ、補充率、最大トークン集合数等の設定可能パラメータセットを有
しうる。いくつかの実施形態において、クライアントは、所定のトークンバケットに対応
付けられた1以上のパラメータの短期間または長期間の変更を所望しうる。例えば、クラ
イアントは、翌日または翌週に非常に高い作業要求バーストが不定期に起こりうることを
予測可能であり、そしてこのようなバーストに対応するために余分に支払う意思を有しう
る。従って、いくつかの実施形態において、トークンバケット補充率の変更及び/または
他の構成設定の変更を行うための価格設定ポリシーが対応されうる。図33は、少なくと
もいくつかの実施形態による、トークンバケットの構成設定の変更に対して価格設定を行
うために実行されうる処理態様を示すフロー図である。構成要素4701に示されるよう
に、初期ポリシー及びパラメータは、例えば作業対象が初期化される時に、通常モードバ
ケット及びバーストモードバケットを含む1以上のトークンバケットに対し設定されうる
。バケット(複数可)のパラメータ変更に対する価格設定ポリシーが特定され(構成要素
4704)、クライアントはパラメータ変更に関連する費用を知らされうる。例えば特定
の時間窓において補充率または最大トークン集合数を変更するといった、1つまたは複数
の特定バケットに対する1以上のパラメータの変更要求が受信されうる(構成要素470
8)。当該要求に基づいてパラメータが変更され(構成要素4712)(例えば、当該時
間窓の間はパラメータに対し新しい値が使用され、当該時間窓が終了すると初期値が再度
適用されうる)、そして実行されたパラメータ変更及び価格設定ポリシーに基づいて、最
終的に請求額が生成されうる(構成要素4716)。
様々な実施形態において、図10〜15、図21、図25、及び図28〜33のフロー
チャートに示される処理は、示されるものとは異なった順序で実行可能、及び/または並
列して実行可能であることに留意されたい。いくつかの実施形態において、本明細書にお
いて示される1以上の処理は省略可能であり、及び/または図示されていない他の処理も
実行可能である。
活用事例
トークンベース受付制御及びバーストモード処理の価格設定に関する前述の技術は、様
々な異なるシナリオにおいて役立ちうる。例えば、いくつかのデータベース環境において
、クライアントは、非常に大きい(テラバイトまたはペタバイトレベルの)テーブルまた
はテーブルセットを有し、そして当該テーブルにおいて一部の時間帯にのみ(他の時間帯
ではなく)非常に高い入出力率を命令しうる。同様に、他のネットワークアクセス可能な
サービス(汎用ストレージサービス、コンピューティング集約サービス等)もまた、高い
作業量の一時的期間を経験しうる。一般に、データベーステーブル等の所定の作業対象に
対する作業量の経時的な変化を予測することは非常に難しいだろう。クライアントは時々
または稀にしか起こらない高い作業量レベルに対し支払いたくないだろう。同時に、サー
ビスのプロバイダは非常に高いレベルの作業要求を長い時間にわたって対処するのに十分
なリソースを備えておきたくないかもしれないが、しかし多数の要求を拒否することなく
、または顧客要求の応答時間を大幅に増加することなく、到着率における一時的バースト
に可能な限り対応したいだろう。本明細書で説明される種類のトークンベース受付制御手
法を使用することで、プロバイダはリソースを無駄にせずに、要求到着率におけるバース
トの大部分(全てではなくとも)に対応可能でありうる。トークン共有技術及び共有リソ
ースの余剰能力の公平分配の使用はまた、不均等に分散した作業要求到着率にクライアン
トが対処することを支援しうる。
バーストモード処理及び/または通常モード処理に対する柔軟な(例えばクライアント
選択の)価格設定の対応は、様々な種類の不均一な作業量に対応する間もクライアントの
予算優先性が守られるという、クライアントの信頼感を高めうる。トークンマーケットプ
レイスにおいてトークンを購入及び販売できることは、クライアントが時に不正確な作業
量予測をしても、このような不正確さに対するペナルティは最小化できるという可能性を
高めうる
例示的コンピュータシステム
少なくともいくつかの実施形態において、トークンベース受付コントローラ、トークン
分配器、価格設定マネジャー、及び/または様々な種類の作業対象を実行する技術を含む
、本明細書で説明される1以上の技術の一部または全てを実施するサーバは、1以上のコ
ンピュータアクセス可能な媒体を含む、またはこのような媒体にアクセスするように構成
された汎用コンピュータシステムを含みうる。図34は、このような汎用コンピューティ
ングデバイス8000を示す。図示された実施形態において、コンピューティングデバイ
ス8000は、入出力インターフェイス8030を介してシステムメモリ8020に接続
された1以上のプロセッサ8010を含む。コンピューティングデバイス8000はさら
に、入出力インターフェイス8030に接続されたネットワークインターフェイス804
0を含む。
様々な実施形態において、コンピューティングデバイス8000は、1つのプロセッサ
8010を含むユニプロセッサシステム、またはいくつか(例えば2つ、4つ、8つまた
は別の好適な個数)のプロセッサ8010を含む多重プロセッサシステムでありうる。プ
ロセッサ8010は、命令を実行可能な任意の好適なプロセッサでありうる。例えば、様
々な実施形態において、プロセッサ8010は、多種の命令集合アーキテクチャ(ISA
)(例えばx86、PowerPC、SPARC、MIPS‐ISA、またはその他の好
適なISA等)のいずれかを実施する汎用または組込みプロセッサでありうる。多重プロ
セッサシステムにおいて、各プロセッサ8010は一般に、必ずしもではないが、同一の
ISAを実施しうる。
システムメモリ8020は命令と、プロセッサ8010(複数可)がアクセス可能なデ
ータを記憶するように構成されうる。様々な実施形態において、システムメモリ8020
は、静的ランダムアクセスメモリ(SRAM)、同期式動的RAM(SDRAM)、不揮
発性/フラッシュメモリ、またはその他の種類のメモリ等、任意の好適なメモリ技術を使
用して実行されうる。図示された実施形態において、前述の方法、技術及びデータ等、1
以上の所望する機能を実行するプログラム命令及びデータは、システムメモリ8020に
おいてコード8025及びデータ8026として記憶されることが示される。
一実施形態において、入出力インターフェイス8030は、プロセッサ8010と、シ
ステムメモリ8020と、データオブジェクトパーティションの物理レプリカを記憶する
のに使用される様々な種類の永続的及び/または揮発性ストレージデバイス等、ネットワ
ークインターフェイス8040もしくは他の周辺インターフェイスを含む任意の周辺デバ
イスとの間の入出力トラフィックをデバイス内で調整するように構成されうる。いくつか
の実施形態において、入出力インターフェイス8030は、あるコンポーネント(例えば
、システムメモリ8020)からのデータ信号を、別のコンポーネント(例えば、プロセ
ッサ8010)が使用する好適な形式に変換するのに必要な任意のプロトコル、タイミン
グ、または他のデータの変換を行いうる。いくつかの実施形態において、入出力インター
フェイス8030は、例えば周辺構成要素相互接続(PCI)バス規格、または汎用シリ
アルバス(USB)規格等、様々な種類の周辺バスを介して取り付けられるデバイスのサ
ポートを含みうる。いくつかの実施形態において、入出力インターフェイス8030の機
能は、例えばノースブリッジとサウスブリッジといった2つ以上の別々のコンポーネント
に分割されうる。また、いくつかの実施形態において、システムメモリ8020に対する
インターフェイス等、一部または全ての入出力インターフェイス8030の機能性は、プ
ロセッサ8010に直接取込まれうる。
ネットワークインターフェイス8040は、コンピューティングデバイス8000と、
例えば図1aから図33において示されたような他のコンピュータシステムまたはデバイ
ス等、1つまたは複数のネットワーク8050に接続された他のデバイス8060との間
において、データが交換できるように構成されうる。様々な実施形態において、ネットワ
ークインターフェイス8040は、例えばイーサネット(登録商標)ネットワークの類の
任意の好適な有線または無線汎用データネットワークを介した通信に対応しうる。さらに
、ネットワークインターフェイス8040は、アナログ音声ネットワークまたはデジタル
ファイバ通信ネットワーク等の電気通信/電話ネットワークを介した、またはファイバチ
ャネルSAN等のストレージエリアネットワークを介した、または任意の他の好適な種類
のネットワーク及び/またはプロトコルを介した、通信に対応しうる。
いくつかの実施形態において、対応する方法及び装置の実施形態を実施するために図1
aから図33に関して前述のように、システムメモリ8020は、プログラム命令及びデ
ータを記憶するように構成されたコンピュータアクセス可能媒体の一実施形態でありうる
。しかしながら別の実施形態において、プログラム命令及び/またはデータは、異なる種
類のコンピュータアクセス可能媒体上で受信され、送信され、記憶されうる。一般に、コ
ンピュータアクセス可能媒体には、例えば入出力インターフェイス8030を介してコン
ピューティングデバイス8000に接続されるディスクまたはDVD/CDといった、磁
気媒体または光学式媒体等の非一時的な記憶媒体及びメモリ媒体が含まれうる。非一時的
なコンピュータアクセス可能記憶媒体には、コンピューティングデバイス8000のいく
つかの実施形態にシステムメモリ8020または別の種類のメモリとして含まれうるRA
M(例えば、SDRAM、DDR、SDRAM、RDRAM、SRAM等)、ROM等の
任意の揮発性または不揮発性媒体も含まれうる。さらに、コンピュータアクセス可能媒体
には、送信媒体すなわち信号が含まれ、このような信号にはネットワーク及び/または無
線リンク等の通信媒体を介して伝達される電気、電磁またはデジタル信号等があり、当該
信号伝達はネットワークインターフェイス8040を介して実行されうる。図34に示さ
れるような多重コンピューティングデバイスの一部または全ては、様々な実施形態におい
て説明される機能性を実行するために使用されうる。例えば、様々な異なるデバイス及び
サーバ上で作動するソフトウェアコンポーネントは、共同して機能性を提供しうる。いく
つかの実施形態において、説明された機能性の一部は、汎用コンピュータシステムを使っ
て実行されるのに加えて、または代わって、ストレージデバイス、ネットワークデバイス
、または専用コンピュータシステムを使って実行されうる。本明細書で使用される「コン
ピューティングデバイス」という用語は、少なくとも全てのこの種類のデバイスを指し、
かつこの種類のデバイスに限定されない。
前述の内容は以下の項目を参照することで、より理解されるだろう。
(第1項)
1以上のコンピューティングデバイスを備えるシステムであって、コンピューティング
デバイスは、
第一作業対象及び第二作業対象が、実行対象として受付けられた作業要求応じて共有リ
ソースを使用するように設定し、第一作業対象は第一プロビジョン処理能力率を有し、第
二作業対象は第二プロビジョン処理能力率を有し、そして共有リソースは処理能力限度を
有し、
第一作業対象及び第二作業対象が、作業要求の受付制御用のそれぞれのトークンバケッ
トセットを有するように設定し、各トークンバケットセットは作業要求を実行対象として
受付けるか否かを決定するのに使用されるトークン集合を有する1以上のバケットを備え

(a)第一時間間隔において第一及び第二作業対象が作業要求を受信した相対率を示す
到着率比と、(b)第一及び第二プロビジョン処理能力率に少なくとも一部基づいたプロ
ビジョン処理能力比と、(c)第二時間間隔において受付制御用の第一及び第二作業対象
のバケットセット間で分配するトークンの合計数とを特定し、合計数は共有リソースの処
理能力限度に少なくとも一部基づき、
到着率比及びプロビジョン処理能力比に少なくとも一部基づいて、第一作業対象の特定
バケットに、合計数を超えない特定数のトークンを追加し、
第一作業対象の特定バケットのトークン集合数に少なくとも一部基づいて、第二時間間
隔において、第一作業対象に対する特定の作業要求を実行対象として受付ける
ように構成された、システム。
(第2項)
トークンの合計数は、共有リソースの処理能力限度から第一及び第二プロビジョン処理
能力率の合計を減算することで、少なくとも一部決定される、第1項に記載のシステム。
(第3項)
第一作業対象のバケットセットは、作業要求到着率が閾値より低い通常モード作動中に
受付制御のためにトークン集合数が調べられる通常モードバケットと、作業要求到着率が
閾値以上のバーストモード作動中に受付制御のためにトークン集合数が調べられるバース
トモードバケットとを備え、特定バケットはバーストモードバケットを含む、第1項に記
載のシステム。
(第4項)
第一作業対象はネットワークアクセス可能なサービスにより管理される第一ストレージ
オブジェクトの少なくとも一部を備え、第二作業対象はネットワークアクセス可能なサー
ビスにより管理される第二ストレージオブジェクトの少なくとも一部を備え、共有リソー
スは第一作業対象及び第二作業対象が記憶されるストレージデバイスを備える、第1項に
記載のシステム。
(第5項)
特定の作業要求は(a)読出し処理、または(b)書込み処理を1以上含む、第1項に
記載のシステム。
(第6項)
1以上のコンピュータデバイスにより、
第一作業対象及び第二作業対象が、実行対象として受付けられた作業要求応じて共有リ
ソースを使用するように設定し、第一作業対象は第一プロビジョン処理能力率を有し、第
二作業対象は第二プロビジョン処理能力率を有し、
第一作業対象及び第二作業対象が、作業要求の受付制御用のそれぞれのトークンバケッ
トセットを有するように設定し、各トークンバケットセットは作業要求を実行対象として
受付けるか否かを決定するのに使用されるトークン集合を有する1以上のバケットを備え

(a)第一時間間隔における第一及び第二作業対象の作業要求到着率を示す第一計量と
、(b)第一及び第二プロビジョン処理能力率に関連する第二計量とを特定し、
第一計量、第二計量、及び共有リソースの処理能力限度に少なくとも一部基づいて、第
一作業対象の特定バケットに特定数のトークンを追加し、
第一作業対象の特定バケットのトークン集合数に少なくとも一部基づいて、第二時間間
隔において、第一作業対象に対する特定の作業要求を実行対象として受付ける
ことを含む方法。
(第7項)
1以上のコンピューティングデバイスにより、
共有リソースの処理能力限度に少なくとも一部基づいて、第一及び第二作業対象のバケ
ットセットに分配されるトークンの合計数を決定し、分配されるトークンの特定数は合計
数を超えない
ことをさらに含む第6項に記載の方法。
(第8項)
トークンの合計数は、共有リソースの処理能力限度から第一及び第二プロビジョン処理
能力率の合計を減算することで、少なくとも一部決定される、第7項に記載の方法。
(第9項)
第一作業対象のバケットセットは、作業要求到着率が閾値より低い通常モード作動中に
受付制御のためにトークン集合数が調べられる通常モードバケットと、作業要求到着率が
閾値以上のバーストモード作動中に受付制御のためにトークン集合数が調べられるバース
トモードバケットとを備え、特定バケットはバーストモードバケットを含む、第6項に記
載の方法。
(第10項)
第一作業対象はネットワークアクセス可能なサービスにより管理される第一ストレージ
オブジェクトの少なくとも一部を備え、第二作業対象はネットワークアクセス可能なサー
ビスにより管理される第二ストレージオブジェクトの少なくとも一部を備え、共有リソー
スは第一作業対象及び第二作業対象が記憶されるストレージデバイスを備える、第6項に
記載の方法。
(第11項)
第一作業対象はネットワークアクセス可能なマルチテナントデータベースサービスによ
り管理される第一テーブルパーティションの少なくとも一部を備え、第二作業対象はネッ
トワークアクセス可能なマルチテナントデータベースサービスにより管理される第二テー
ブルの少なくとも一部を備える、第6項に記載の方法。
(第12項)
共有リソースはソフトウェアモジュールのデータ構造を備える、第6項に記載の方法。
(第13項)
特定の作業要求は(a)読出し処理、または(b)書込み処理を1以上含む、第6項に
記載の方法。
(第14項)
1以上のコンピューティングデバイスにより、
第一計量、第二計量、及び処理能力限度の特定関数に少なくとも一部基づいて、分配さ
れるトークンの特定数を決定し、
第一及び第二作業対象に関連する1以上の追加計量を監視し、
1以上の追加計量に少なくとも一部基づいて、特定関数を修正する
ことをさらに含む第6項に記載の方法。
(第15項)
プログラム命令を記憶する非一時的コンピュータアクセス可能記憶媒体であって、プロ
グラム命令は1以上のプロセッサ上で実行されると、
第一作業対象及び第二作業対象が、実行対象として受付けられた作業要求応じて共有リ
ソースを使用するように設定し、第一作業対象は第一プロビジョン処理能力率を有し、第
二作業対象は第二プロビジョン処理能力率を有し、
第一作業対象及び第二作業対象が、作業要求の受付制御用のそれぞれのトークンバケッ
トセットを有するように設定し、各トークンバケットセットは作業要求を実行対象として
受付けるか否かを決定するのに使用されるトークン集合を有する1以上のバケットを備え

(a)第一時間間隔における第一及び第二作業対象の作業要求到着率を示す第一計量と
、(b)第一及び第二プロビジョン処理能力率に関連する第二計量とを特定し、
第一計量、第二計量、及び共有リソースの処理能力限度に少なくとも一部基づいて、第
一作業対象の特定バケットに特定数のトークンを追加し、
第一作業対象の特定バケットのトークン集合数に少なくとも一部基づいて、第二時間間
隔において、第一作業対象に対する特定の作業要求を実行対象として受付ける、
非一時的コンピュータアクセス可能記憶媒体。
(第16項)
プログラム命令は1以上のプロセッサ上で実行されると、
共有リソースの処理能力限度に少なくとも一部基づいて、第一及び第二作業対象のバケ
ットセットに分配されるトークンの合計数を決定し、分配されるトークンの特定数は合計
数を超えない、
第15項に記載の非一時的コンピュータアクセス可能記憶媒体。
(第17項)
第一作業対象のバケットセットは、作業要求到着率が閾値より低い通常モード作動中に
受付制御のためにトークン集合数が調べられる通常モードバケットと、作業要求到着率が
閾値以上のバーストモード作動中に受付制御のためにトークン集合数が調べられるバース
トモードバケットとを備え、特定バケットはバーストモードバケットを含む、第15項に
記載の非一時的コンピュータアクセス可能記憶媒体。
(第18項)
第一作業対象はネットワークアクセス可能なサービスにより管理される第一ストレージ
オブジェクトの少なくとも一部を備え、第二作業対象はネットワークアクセス可能なサー
ビスにより管理される第二ストレージオブジェクトの少なくとも一部を備え、共有リソー
スは第一作業対象及び第二作業対象が記憶されるストレージデバイスを備える、第15項
に記載の非一時的コンピュータアクセス可能記憶媒体。
(第19項)
共有リソースはオペレーティングシステムに実装された論理リソースを含む、第15項
に記載の非一時的コンピュータアクセス可能記憶媒体。
(第20項)
特定の作業要求は、(a)読出し処理、または(b)書込み処理を1以上含む、第15
項に記載の非一時的コンピュータアクセス可能記憶媒体。
前述の内容は以下の項目を参照することで、より理解されるだろう。
(第1項)
1以上のコンピューティングデバイスを備えるシステムであって、コンピューティング
デバイスは、
作業対象の作業量管理に対応付けられた1以上のトークンバケットのインスタンスを作
成し、作業対象は、作業要求を実行対象として受付けるためのそれぞれの受付制御パラメ
ータセットにより複数の作動モードで作動するように構成され、作業要求受付判断は、1
以上のトークンバケットのうち少なくとも1つのバケットのトークン集合数に少なくとも
一部基づいて行われ、
1以上のトークンバケットのうち特定のトークンバケットに適用するトークン価格設定
ポリシーを特定し、トークン価格設定ポリシーは(a)複数の作動モードのうちトークン
価格設定ポリシーが適用される少なくともバースト作動モードの特定を含む、トークン価
格設定ポリシーの1以上の適用基準と、(b)特定のトークンバケットのトークン集合数
の変更に関してクライアントに請求する価格設定額とを示し、
1以上の適用基準を満たした作業対象のバーストモード作動中に起こった、特定のトー
クンバケットのトークン集合数に関する1以上の変更を、時間帯を通して記録し、
時間帯を通して記録された1以上の変更に少なくとも一部基づいて、クライアントに請
求する請求額を生成する
ように構成された、システム。
(第2項)
1以上のトークンバケットは、作業対象の作動モードを決定するためにトークン集合数
が使用される通常モードバケットと、バーストモード作動中に作業要求を受付けるか否か
を決定するためにトークン集合数が使用される1以上のバーストモードバケットとを備え
、特定のトークンバケットは当該の1以上のバーストモードバケットのうちのバーストモ
ードバケットを含む、第1項に記載のシステム。
(第3項)
1以上のバーストモードバケットは、トークン集合数が作業対象の利用可能処理能力を
示すローカルバースト限度バケットと、トークン集合数が複数の作業対象により共有され
るリソースの利用可能処理能力を示す共有リソース能力バケットとを含み、特定バケット
は共有能力バケットを含み、1以上の適用基準のうちの特定の適用基準は、ローカルバー
スト限度バケットのトークン集合数が特定の閾値を上回らないという判断に応じて適用す
る価格設定ポリシーを示す、第2項に記載のシステム。
(第4項)
特定のトークンバケットのトークン集合数の変更は、受信作業要求を実行対象として受
付けるのに1以上のトークンが消費された結果、トークン集合数が減少することを含む、
第1項に記載のシステム。
(第5項)
特定のトークンバケットのトークン集合数の変更は、トークンマーケットプレイスを使
用して行われたトークン販売処理に応じて1以上のトークンが別のバケットへ譲渡された
結果、トークン集合数が減少することを含む、第1項に記載のシステム。
(第6項)
1以上のコンピュータデバイスにより、
作業対象の作業量管理に対応付けられた1以上のトークンバケットのインスタンスを作
成し、作業対象に対する作業要求の受付判断は、1以上のトークンバケットのうち少なく
とも1つのバケットのトークン集合数に少なくとも一部基づいて行われ、
作業対象のバーストモード作動中に1以上のトークンバケットのうち特定のトークンバ
ケットに適用するトークン価格設定ポリシーを決定し、トークン価格設定ポリシーは、特
定のトークンバケットのトークン集合数の変更に関してクライアントに請求する価格設定
額を示し、
バーストモード作動中に行われた、特定のトークンバケットのトークン集合数に関する
1以上の変更を、時間帯を通して記録し、
時間帯を通して記録された1以上の変更に少なくとも一部基づいて、クライアントに請
求する請求額を生成する
ことを含む方法。
(第7項)
1以上のトークンバケットは、作業対象の作動モードを決定するためにトークン集合数
が使用される通常モードバケットと、バーストモード作動中に作業要求を受付けるか否か
を決定するためにトークン集合数が使用される1以上のバーストモードバケットとを備え
、特定のトークンバケットは当該の1以上のバーストモードバケットのうちのバーストモ
ードバケットを含む、第6項に記載の方法。
(第8項)
1以上のバーストモードバケットは、トークン集合数が作業対象の処理能力を示すロー
カルバースト限度バケットと、トークン集合数が複数の作業対象により共有されるリソー
スの利用可能処理能力を示す共有リソース能力バケットとを含み、特定バケットは共有能
力バケットを含み、価格設定ポリシーに従って1以上のコンピューティングデバイスによ
り、
ローカルバースト限度バケットのトークン集合数が閾値基準を満たすという判断に応じ
て、価格設定ポリシーを共有リソース能力バケットの特定のトークン集合数変更に適用す
ることをさらに含む、第7項に記載の方法。
(第9項)
特定のトークンバケットのトークン集合数の変更は、受信作業要求を実行対象として受
付けるのに1以上のトークンが消費された結果、トークン集合数が減少することを含む、
第6項に記載の方法。
(第10項)
特定のトークンバケットのトークン集合数の変更は、トークンマーケットプレイスを使
用して行われたトークン販売処理に応じて1以上のトークンが別のバケットへ譲渡された
結果、トークン集合数が減少することを含む、第6項に記載の方法。
(第11項)
1以上のコンピューティングデバイスにより、
トークンマーケットプレイスを介して特定トークンバケットのトークンが別のトークン
バケットへ譲渡可能であることをクライアントが示すことを可能にする1以上のプログラ
ム的インターフェイスを実行することをさらに含む、第10項に記載の方法。
(第12項)
トークン価格設定ポリシーは、特定バケットからトークンを別のバケットへ譲渡するの
に請求される金額は、譲渡に関して受けた1以上のオークション入札に少なくとも一部基
づいて決定されることを示す、第11項に記載の方法。
(第13項)
1以上のコンピューティングデバイスにより、
クライアントが複数のトークン価格設定ポリシーから1つのトークン価格設定ポリシー
を選択することを可能にする1以上のプログラム的インターフェイスを実行することをさ
らに含む、第6項に記載の方法。
(第14項)
価格設定ポリシーはクライアント指定の予算限度を示し、1以上のコンピューティング
デバイスにより、
クライアント指定の予算限度に少なくとも一部基づいて、特定のトークンバケットの集
合数の変更の実施を決定することをさらに含む、第6項に記載の方法。
(第15項)
作業対象はストレージオブジェクトの第一パーティションを備え、ストレージオブジェ
クトは少なくとも第一パーティション及び第二パーティションを含み、特定バケットのト
ークン集合数に関する1以上の変更のうち特定の変更は、特定バケットから第二パーティ
ションの作業量管理のために使用される別のバケットへのトークン譲渡の結果である、第
6項に記載の方法。
(第16項)
プログラム命令を記憶する非一時的コンピュータアクセス可能記憶媒体であって、プロ
グラム命令は1以上のプロセッサ上で実行されると、
作業対象の受付制御判断に使用される1以上のトークンバケットのうち特定のトークン
バケットに適用するトークン価格設定ポリシーを決定し、トークン価格設定ポリシーは作
業対象がバーストモード作動の間に適用され、トークン価格設定ポリシーは特定のトーク
ンバケットのトークン集合数の変更に関してクライアントに請求する価格設定額を示し、
バーストモード作動中の特定のトークンバケットのトークン集合数に関する1以上の変
更を、時間帯を通して記録し、
時間帯を通して記録された1以上の変更に少なくとも一部基づいて、クライアントに請
求する請求額を生成する、
非一時的コンピュータアクセス可能記憶媒体。
(第17項)
1以上のトークンバケットは、作業対象の通常モード作動中に作業要求を受付けるか否
かを決定するためにトークン集合数が使用される通常モードバケットと、バーストモード
作動中に作業要求を受付けるか否かを決定するためにトークン集合数が使用される1以上
のバーストモードバケットとを備え、特定のトークンバケットは当該の1以上のバースト
モードバケットのうちのバーストモードバケットを含み、命令が1以上のプロセッサ上で
実行されると、
通常モードバケットのトークン集合数変更に適用される別のトークン価格設定ポリシー
を決定する、第16項に記載の非一時的コンピュータアクセス可能記憶媒体。
(第18項)
1以上のバーストモードバケットは、トークン集合数が作業対象の利用可能処理能力を
示すローカルバースト限度バケットと、トークン集合数が複数の作業対象により共有され
るリソースの利用可能処理能力を示す共有リソース能力バケットとを含み、特定バケット
は共有能力バケットを含み、価格設定ポリシーに従って命令が1以上のプロセッサ上で実
行されると、
ローカルバースト限度バケットのトークン集合数が閾値基準を満たすという判断に応じ
て、価格設定ポリシーを共有リソース能力バケットの特定のトークン集合数変更に適用す
る、第17項に記載の非一時的コンピュータアクセス可能記憶媒体。
(第19項)
特定のトークンバケットのトークン集合数の変更は、トークンマーケットプレイスを
使用して行われたトークン販売処理に応じて1以上のトークンが別のバケットへ譲渡され
た結果、トークン集合数が減少することを含む、第16項に記載の非一時的コンピュータ
アクセス可能記憶媒体。
(第20項)
特定バケットにはトークン補充率及び最大トークン集合数限度が設定され、価格設定ポ
リシーは(a)トークン補充率、または(b)最大トークン集合数限度、の少なくとも1
つに対する変更に関してクライアントに請求する別の金額の指示を含む、第16項に記載
の非一時的コンピュータアクセス可能記憶媒体。
前述の内容は以下の項目を参照することで、より理解されるだろう。
(第1項)
1以上のコンピューティングデバイスを備えるシステムであって、コンピューティング
デバイスは、
作業対象に対する作業要求を受信し、
作業対象に対応付けられた通常モードトークンバケットのトークン集合数が第一閾値基
準を満たすという判断に応じて、通常モードトークン消費ポリシーに従って通常モードト
ークンバケットから1以上のトークンを消費し、作業要求を実行対象として受付け、
通常モードトークンバケットのトークン集合数が第一閾値基準を満たさないという判断
に応じて、
バーストモードトークンバケットセットの少なくとも1つのバケットのトークン集合数
が第二閾値基準を満たすか否かを判定し、
バーストモードトークンバケットセットの少なくとも1つのバケットのトークン集合数
が第二閾値基準を満たすという判断に応じて、バーストモードトークン消費ポリシーに少
なくとも一部基づいてバーストモードトークンバケットセットの少なくとも1つのバケッ
トから1以上のトークンを消費し、作業要求を実行対象として受付け、
バーストモードトークンバケットセットの少なくとも1つのバケットのトークン集合数
が第二閾値基準を満たさないという判断に応じて、作業要求を拒否する
ように構成された、システム。
(第2項)
1以上のコンピューティングデバイスはさらに、
通常モードで作動中の作業対象において実行可能とする最大作業処理率を示すプロビジ
ョン処理能力を作業対象に割当て、
プロビジョン処理能力に少なくとも一部基づいた率で、通常モードトークンバケットを
補充し、
プロビジョン処理能力に少なくとも一部基づいた別の率で、バーストモードトークンバ
ケットセットの少なくとも1つのバケットを補充する
ように構成された、第1項に記載のシステム。
(第3項)
1以上のコンピューティングデバイスはさらに、
作業要求が受信された平均率が作業対象に指定されたプロビジョン率より低い特定の時
間帯の終わりに、1以上の作業トークンが通常モードトークンバケットに残っているとい
う判断に応じて、バーストモードトークンバケットセットの少なくとも1つのバケットの
トークン集合数を、通常モードトークンバケットに残る作業トークンの数に少なくとも一
部基づいた数量分だけ増加させる
ように構成された、第1項に記載のシステム。
(第4項)
バーストモードバケットセットは、作業対象における作業処理の最大対応バースト率を
最大トークン集合数で示すローカルバースト限度トークンバケットと、複数の作業オブジ
ェクトにより共有されるリソースの利用可能処理能力をトークン集合数で示す共有リソー
ストークンバケットとを備え、通常モードトークンバケットのトークン集合数が第一閾値
基準を満たさないという前述の判断に応じて、1以上のコンピューティングデバイスはさ
らに、
ローカルバースト限度トークンバケットのトークン集合数がゼロより大きく、かつ共有
リソーストークンバケットのトークン集合数がゼロより大きいと判断したことに応じて、
作業要求を実行対象として受付ける
ように構成された、第1項に記載のシステム。
(第5項)
1以上のコンピューティングデバイスはさらに、
作業要求を実行対象として受付ける前に、作業要求に応じて行われる作業量の見積りを
生成し、
作業要求の受付後に、作業要求に対応する実際に行われた作業量を特定し、
実際に行われた作業量と見積りとの差の特定に応じて、1以上の(a)バーストモード
トークンバケットセット、または(b)バーストモードトークンバケットセットの少なく
とも1つのバケットのトークン集合数を、特定された差に少なくとも一部基づいて修正す

ように構成された、第1項に記載のシステム。
(第6項)
1以上のコンピュータデバイスにより、
作業対象に対する作業要求を受信し、
作業対象に対応付けられた通常モードトークンバケットのトークン集合数を特定し、
通常モードトークンバケットのトークン集合数が第一閾値基準を満たすという判断に応
じて、
作業対象に対応付けられたバーストモードトークンバケットセットの少なくとも1つの
バケットのトークン集合数が第二閾値基準を満たすと判断し、
作業要求を実行対象として受付け、
バーストモードトークンバケットセットの少なくとも1つのバケットのトークン集合数
を、バーストモードトークン消費ポリシーに少なくとも一部基づいて修正する
ことを含む方法。
(第7項)
1以上のコンピューティングデバイスにより、
通常モードで作動中の作業対象において実行可能とする最大作業処理率を示すプロビジ
ョン処理能力を作業対象に割当て、
プロビジョン処理能力に少なくとも一部基づいた率で、通常モードトークンバケットを
補充し、
プロビジョン処理能力に少なくとも一部基づいた別の率で、バーストモードトークンバ
ケットセットの少なくとも1つのバケットを補充する
ことをさらに含む第6項に記載の方法。
(第8項)
1以上のコンピューティングデバイスにより、
作業対象が通常モードで作動していた特定の時間帯の終わりに、1以上の作業トークン
が通常モードトークンバケットに残っているという判断に応じて、バーストモードトーク
ンバケットセットの少なくとも1つのバケットのトークン集合数を、通常モードトークン
バケットに残る作業トークンの数に少なくとも一部基づいた数量分だけ増加させる
ことをさらに含む第6項に記載の方法。
(第9項)
バーストモードバケットセットは、作業対象における作業処理の最大対応バースト率を
最大トークン集合数で示すローカルバースト限度トークンバケットと、複数の作業オブジ
ェクトにより共有されるリソースの利用可能処理能力をトークン集合数で示す共有リソー
ストークンバケットとを備え、通常モードトークンバケットのトークン集合数が第一閾値
基準を満たすという前述の判断に応じて、1以上のコンピューティングデバイスにより、
ローカルバースト限度トークンバケットのトークン集合数がゼロより大きく、かつ共有
リソーストークンバケットのトークン集合数がゼロより大きいと判断したことに応じて、
作業要求を実行対象として受付ける
ことをさらに含む第6項に記載の方法。
(第10項)
1以上のコンピューティングデバイスにより、
作業要求を実行対象として受付ける前に、作業要求に応じて行われる作業量の見積りを
生成し、
当該作業要求の作業開始後に、作業要求に対応する実際に行われた作業量を特定し、
実際の作業量と見積りとの差の特定に応じて、1以上の(a)バーストモードトークン
バケットセット、または(b)バーストモードトークンバケットセットの少なくとも1つ
のバケットのトークン集合数を、特定された差に少なくとも一部基づいて修正する
ことをさらに含む第6項に記載の方法。
(第11項)
作業対象はストレージオブジェクトの少なくとも一部を備え、作業要求は(a)読出し
処理、または(b)書込み処理のうち少なくとも1つを含む、第6項に記載の方法。
(第12項)
バーストモードバケットセットは、読出し処理を含む作業要求の受付制御に使用される
読出しバーストトークンバケットと、書込み処理を含む作業要求の受付制御に使用される
書込みバーストトークンバケットとを備える、第6項に記載の方法。
(第13項)
1以上のコンピューティングデバイスにより、
時間帯を通して作業要求到着率を監視し、
バーストモードトークンバケットセットの少なくとも1つのバケットの最大トークン集
合数限度を、作業要求到着率の監視結果に少なくとも一部基づいて修正する
ことをさらに含む第6項に記載の方法。
(第14項)
1以上のコンピューティングデバイスにより、
作業対象のバーストモード処理に対応付けられた価格設定ポリシーの指示をクライアン
トに提供し、
バーストモードトークンバケットセットの少なくとも1つのバケットの最大トークン集
合数限度を、価格設定ポリシーに従って、クライアントから受信したバーストモード能力
増加要求に少なくとも一部基づいて修正する
ことをさらに含む第6項に記載の方法。
(第15項)
プログラム命令を記憶する非一時的コンピュータアクセス可能記憶媒体であって、プロ
グラム命令は1以上のプロセッサ上で実行されると、
作業対象に対する作業要求を受信し、
第一閾値基準に少なくとも一部基づいて作業対象がバーストモードで作動しているとい
う判断に応じて、
作業対象に対応付けられたバーストモードトークンバケットセットの少なくとも1つの
バケットのトークン集合数が第二閾値基準を満たすと判断し、
作業要求を実行対象として受付ける、
非一時的コンピュータアクセス可能記憶媒体。
(第16項)
プログラム命令は1以上のプロセッサ上で実行されると、
通常モードで作動中の作業対象において実行可能とする最大作業処理率を示すプロビジ
ョン処理能力を作業対象に割当て、
プロビジョン処理能力に少なくとも一部基づいた率で、作業対象に対応付けられた通常
モードトークンバケットを補充し、第一閾値基準は通常モードトークンバケットのトーク
ン集合数に少なくとも一部基づき、
プロビジョン処理能力に少なくとも基づいた別の率で、バーストモードトークンバケッ
トセットの少なくとも1つのバケットを補充する、
第15項に記載の非一時的コンピュータアクセス可能記憶媒体。
(第17項)
プログラム命令は1以上のプロセッサ上で実行されると、
特定の時間帯の終わりに、1以上の作業トークンが作業対象に対応付けられた通常モー
ドトークンバケットに残っているという判断に応じて、バーストモードトークンバケット
セットの少なくとも1つのバケットのトークン集合数を、通常モードトークンバケットに
残る作業トークンの数に少なくとも一部基づいた数量分だけ増加させる、
第15項に記載の非一時的コンピュータアクセス可能記憶媒体。
(第18項)
バーストモードバケットセットは、作業対象における作業処理の最大対応バースト率を
最大トークン集合数で示すローカルバースト限度トークンバケットと、複数の作業オブジ
ェクトにより共有されるリソースの利用可能処理能力をトークン集合数で示す共有リソー
ストークンバケットとを備え、第一閾値基準が満たされたという判断に応じてプログラム
命令が1以上のプロセッサ上で実行されると、
ローカルバースト限度トークンバケットのトークン集合数がゼロより大きく、かつ共有
リソーストークンバケットのトークン集合数がゼロより大きいと判断したことに応じて、
作業要求を実行対象として受付ける、
第15項に記載の非一時的コンピュータアクセス可能記憶媒体。
(第19項)
プログラム命令は1以上のプロセッサ上で実行されると、
バーストモードトークンバケットセットの少なくとも1つのバケットのトークン集合数
が第二閾値基準を満たすという判断に応じて、トークン消費ポリシーに従って、少なくと
も1つのバケットの少なくとも1つのトークンを消費する、
第15項に記載の非一時的コンピュータアクセス可能記憶媒体。
(第20項)
作業対象はデータベーステーブルのパーティションの少なくとも一部を備え、作業要求
は(a)読出し処理、または(b)書込み処理のうち少なくとも1つを含む、第15項に
記載の非一時的コンピュータアクセス可能記憶媒体。
結論
様々な実施形態はさらに、コンピュータアクセス可能媒体に関する前述の説明に従って
実行される命令及び/またはデータの受信、送信または記憶処理も含みうる。一般に、コ
ンピュータアクセス可能媒体には、磁気媒体または光学式媒体等の記憶媒体もしくはメモ
リ媒体が含まれる。例えば、ディスクすなわちDVD/CD‐ROM、及びRAM(例え
ば、SDRAM、DDR、RDRAM、SRAM等)、ROM等の揮発性または不揮発性
媒体、及び送信媒体すなわちネットワーク及び/または無線リンク等のコミュニケーショ
ン媒体を介して伝達される電気、電磁またはデジタル信号等の信号が含まれうる。
本明細書で図示及び記述される様々な方法は、方法の例示的実施形態を表す。方法は、
ソフトウェア、ハードウェア、またはこれらの組合せにおいて実施されうる。方法の順序
は変更され、そして様々な要素が追加、並替、結合、省略、修正等されうる。
本開示の恩恵を受ける当業者に明らかであろう様々な修正及び変更が行われうる。本明
細書は全てのこのような修正及び変更を包含し、従って前述の説明は制限的な意味ではな
く実例的な意味としてみなされるものとする。

Claims (15)

  1. トークンバケットの第一のセットを伴う第一の作業対象を含む、作業要求の許可制御のためのトークンバケットのそれぞれのセットを伴う複数の作業対象を構成するように、この場合、前記第一の作業対象における実行の作業要求を受け付ける判断は、前記第一のセットの一つ以上のトークンバケットのトークン集合数に少なくとも一部基づいている、
    トークン共有評価基準が、前記第一の作業対象において満たされているという判断に応じて、前記第一の作業対象からのトークン集合数情報をそれと交換する複数の作業対象の第二の作業対象を識別するように、この場合、前記第二の作業対象は、トークンバケットの第二のセットとともに構成され、
    前記第一のセットにおける第一のバケットおよび前記第二のセットにおける第二のバケットのそれぞれのトークン集合数の分析に少なくとも一部基づいて、前記第一のバケットと前記第二のバケットとの間のトークン転送を開始するか否かを判断するように、
    トークン転送を開始する判断に応じて、前記トークン転送に対して識別された転送方向に従って、特定数のトークンにより、前記第一および第二のバケットのうちの一方のバケットの前記トークン集合数を増加させ、および前記特定数のトークンにより、前記第一および第二のバケットのうちの他方のバケットの前記トークン集合数を減少させるように、
    第一の作業対象に向けられた作業要求の受信に応じて、前記第一のバケットの変更されたトークン集合数に少なくとも一部基づいて、前記実行に対する作業要求を受け付けるように、
    構成された一つ以上のコンピューティングデバイスを備えるシステム。
  2. 前記複数の作業対象は、第一のクライアントのためのネットワークアクセス可能なストレージサービスで生成された一つ以上のストレージオブジェクトから成る第一の収集物と、第二のクライアントのためのネットワークアクセス可能なストレージサービスで生成された一つ以上のストレージオブジェクトから成る第二の収集物とを含み、前記第一の作業対象は、前記第一の収集物のストレージオブジェクトの少なくとも一部を備え、および前記第二の作業対象を識別するために、前記一つ以上のコンピューティングデバイスは、前記第一の収集物から前記第二の収集物を選択するように構成される、請求項1に記載のシステム。
  3. 前記第一の作業対象は、ネットワークアクセス可能なデータベースサービスの特定のクライアントのためにインスタンス化されたベースデータベーステーブルの少なくとも一部を備え、前記第二の作業対象は、前記ベースデータベーステーブルに二次インデックスを実装するために前記ネットワークアクセス可能なデータベースサービスにおいてインスタンス化された派生データベーステーブルの少なくとも一部を備える、請求項1に記載のシステム。
  4. 前記トークンバケットの第一のセットは、前記第一の作業対象の動作の通常モード中の許可制御に用いられる通常モードバケットと、前記第一の作業対象における動作のバーストモード中の許可制御に用いられる一つ以上のバーストモードトークンバケットとを備え、前記一つ以上のバーストモードトークンバケットは前記第一のバケットを含む、請求項1に記載のシステム。
  5. 一つ以上のコンピューティングデバイスによって、
    第一のトークンバケットセットを伴う第一の作業対象を含む、作業要求の許可制御のためのそれぞれのトークンバケットセットを伴う複数の作業対象を構成することであって、前記第一の作業対象における実行の作業要求を受け付ける判断は、前記第一のトークンバケットセットの一つ以上のトークンバケットのトークン集合数に少なくとも一部基づいていることと、
    トークン共有評価基準が前記第一の作業対象において満たされているという判断に応じて、前記第一のトークンバケットセットの第一のバケットと、前記複数の作業対象の第二の作業対象に関連する第二のトークンバケットセットの第二のバケットとの間の特定の方向でトークン転送を開始することと、
    前記第一の作業対象に向けられた作業要求の受信に応じて、前記トークン転送の後の前記第一のバケットの前記トークン集合数に少なくとも一部基づいて、前記実行に対する作業要求を受け付けることと、
    を実行することを含む方法。
  6. 前記複数の作業対象は、第一のクライアントのためのネットワークアクセス可能なストレージサービスで生成された一つ以上のストレージオブジェクトから成る第一の収集物と、第二のクライアントのためのネットワークアクセス可能なストレージサービスで生成された一つ以上のストレージオブジェクトから成る第二の収集物とを含み、前記第一の作業対象は、前記第一の収集物のストレージオブジェクトの少なくとも一部を備え、前記一つ以上のコンピューティングデバイスによって、前記第一の収集物から前記第二の作業対象を選択することをさらに含む、請求項5に記載の方法。
  7. 前記第一の作業対象は、ネットワークアクセス可能なデータベースサービスの特定のクライアントのためにインスタンス化されたベースデータベーステーブルの少なくとも一部を備え、前記第二の作業対象は、前記ベースデータベーステーブルに二次インデックスを実装するために前記ネットワークアクセス可能なデータベースサービスにおいてインスタンス化された派生データベーステーブルの少なくとも一部を備える、請求項5に記載の方法。
  8. 前記第一のトークンバケットセットは、前記第一の作業対象の動作の通常モード中の許可制御に用いられる通常モードバケットと、前記第一の作業対象における動作のバーストモード中の許可制御に用いられる一つ以上のバーストモードトークンバケットとを備え、前記一つ以上のバーストモードトークンバケットは前記第一のバケットを含む、請求項5に記載の方法。
  9. 前記一つ以上のコンピューティングデバイスによって、
    任意選択ポリシーを用いて、前記第二の作業対象を選択することを実行することをさらに含む、請求項5に記載の方法。
  10. 前記一つ以上のコンピューティングデバイスによって、
    ゴシッププロトコルに従って、前記第二の作業対象を選択することを実行することをさらに含む、請求項5に記載の方法。
  11. 前記一つ以上のコンピューティングデバイスによって、
    (a)前記第一の作業対象において、前の評価が開始されてからの時間の量、(b)前記第一のバケットの前記トークン集合数が第一の閾値以下に低下したという指示、(c)前記第一のバケットの前記トークン集合数が、第二の閾値以上に増加したという指示、または、(d)前記第一の作業対象における作業要求の拒否の割合が、特定の閾値以上になったという指示のうちの一つ以上に少なくとも一部基づいて、前記トークン共有評価基準が満たされているか否かを判断することを実行することをさらに含む、請求項5に記載の方法。
  12. 前記第一の作業対象は、ストレージオブジェクトの第一の論理パーティションの複数のレプリカのうちの第一のレプリカを備え、前記複数のレプリカの各レプリカには、(a)マスタ役および(b)スレーブ役のうちの一方を含む役割が割り当てられ、前記第一の論理パーティションに指示された書込み動作を含む作業要求に対する許可制御は、マスタ役がそれに割り当てられる前記レプリカにおいて実行され、前記第一のレプリカには、前記第一の論理パーティションに関する第一の役割が割り当てられ、前記一つ以上のコンピューティングデバイスによって、
    前記ストレージオブジェクトの第二の論理パーティションの特定のレプリカを前記第二の作業対象として選択することであって、前記特定のレプリカには、前記第一の論理パーティションに関する前記第一のレプリカの役割と同じ前記第二の論理パーティションに関する役割が割り当てられることを実行することをさらに含む、請求項5に記載の方法。
  13. 前記第一のバケットと前記第二のバケットとの間の特定の方向で前記トークン転送を開始することは、特定の時間ウィンドウ内での、他のトークン転送が、前記第一の作業対象と前記第二の作業対象との間で実施されていないという判断に少なくとも一部基づいている、請求項5に記載の方法。
  14. 前記特定の方向は、前記第一のバケットおよび第二のバケットの中のより大きなトークン集合数を伴うトークンバケットから、前記第一および第二のバケットの中のより小さなトークン集合数を伴うトークンバケットへの方向であり、前記方法は、前記一つ以上のコンピューティングデバイスによって、
    前記より大きなトークン集合数と、前記より小さなトークン集合数との差に応じて、転送されるトークンの数を決定することを実行することを含む、請求項5に記載の方法。
  15. 一つ以上のプロセッサ上で実行される場合に、
    第一のトークンバケットセットの第一のバケットと、第二のトークンバケットセットの第二のバケットとの間で転送されるトークンの数を決定し、この場合、前記第一のトークンバケットセットは、複数の作業対象の第一の作業対象に向けられた作業要求の許可制御に用いられ、前記第二のトークンバケットセットは、前記複数の作業対象の第二の作業対象における許可制御に用いられ、
    前記第一のバケットと前記第二のバケットとの間の特定の方向で前記トークンの転送を開始し、
    前記第一の作業対象に向けられた作業要求の受信に応じて、前記トークンの転送の後の前記第一のバケットのトークン集合数に少なくとも一部基づいて、前記作業要求を受け付ける、
    プログラム命令を格納する非一時的コンピュータアクセス可能記憶媒体。
JP2017220600A 2013-06-25 2017-11-16 バーストモード制御 Active JP6530471B2 (ja)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US13/926,697 US9385956B2 (en) 2013-06-25 2013-06-25 Compound token buckets for burst-mode admission control
US13/926,694 US10764185B2 (en) 2013-06-25 2013-06-25 Token-based policies burst-mode operations
US13/926,684 2013-06-25
US13/926,697 2013-06-25
US13/926,686 US9471393B2 (en) 2013-06-25 2013-06-25 Burst-mode admission control using token buckets
US13/926,694 2013-06-25
US13/926,708 2013-06-25
US13/926,708 US9218221B2 (en) 2013-06-25 2013-06-25 Token sharing mechanisms for burst-mode operations
US13/926,686 2013-06-25
US13/926,684 US9553821B2 (en) 2013-06-25 2013-06-25 Equitable distribution of excess shared-resource throughput capacity

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016524171A Division JP6247388B2 (ja) 2013-06-25 2014-06-25 バーストモード制御

Publications (2)

Publication Number Publication Date
JP2018077852A JP2018077852A (ja) 2018-05-17
JP6530471B2 true JP6530471B2 (ja) 2019-06-12

Family

ID=52142660

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016524171A Active JP6247388B2 (ja) 2013-06-25 2014-06-25 バーストモード制御
JP2017220600A Active JP6530471B2 (ja) 2013-06-25 2017-11-16 バーストモード制御

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2016524171A Active JP6247388B2 (ja) 2013-06-25 2014-06-25 バーストモード制御

Country Status (8)

Country Link
EP (1) EP3014804B1 (ja)
JP (2) JP6247388B2 (ja)
KR (4) KR101903623B1 (ja)
CN (1) CN105409171B (ja)
AU (2) AU2014302426B2 (ja)
CA (1) CA2915996C (ja)
SG (2) SG11201510427QA (ja)
WO (1) WO2014210221A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6724631B2 (ja) * 2016-07-27 2020-07-15 富士ゼロックス株式会社 情報処理装置及びプログラム
US20180097817A1 (en) * 2016-09-30 2018-04-05 Microsoft Technology Licensing, Llc Generating short-term signatures for accessing cloud storage
CN108270744B (zh) * 2016-12-30 2021-05-07 北京国双科技有限公司 媒体数据访问方法及装置
CN109802895B (zh) * 2017-11-16 2023-01-13 阿里巴巴集团控股有限公司 数据处理系统、方法及令牌管理方法
CN108573013A (zh) * 2017-12-08 2018-09-25 北京金山云网络技术有限公司 请求处理方法、装置、电子设备及计算机可读存储介质
CN108667744B (zh) * 2018-02-26 2020-09-25 华为技术有限公司 流量控制方法及装置
CN110413209B (zh) * 2018-04-28 2023-05-30 伊姆西Ip控股有限责任公司 管理存储系统的方法和设备
WO2019217530A1 (en) * 2018-05-08 2019-11-14 Idac Holdings, Inc. Methods for logical channel prioritization and traffic shaping in wireless systems
CN113468214B (zh) * 2020-03-30 2022-04-29 阿里巴巴集团控股有限公司 数据库访问控制方法、装置、电子设备及可读存储介质
CN112600761B (zh) * 2020-12-11 2024-04-09 腾讯科技(深圳)有限公司 一种资源分配的方法、装置及存储介质
FI20215093A1 (en) * 2021-01-28 2022-07-29 Nokia Solutions & Networks Oy Apparatus and method for scheduling traffic
CN113422736B (zh) * 2021-06-16 2022-06-14 中移(杭州)信息技术有限公司 基于令牌桶的请求管理方法、装置、设备及存储介质
JP2023032752A (ja) * 2021-08-27 2023-03-09 株式会社日立製作所 管理装置、方法、およびプログラム
CN114860334B (zh) * 2022-04-24 2024-01-26 曙光信息产业(北京)有限公司 虚拟机启动风暴的处理方法、装置、设备及介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5944789A (en) * 1996-08-14 1999-08-31 Emc Corporation Network file server maintaining local caches of file directory information in data mover computers
WO1999065184A2 (en) * 1998-06-05 1999-12-16 British Telecommunications Public Limited Company Accounting in a communications network
US6337865B1 (en) 1998-09-23 2002-01-08 Maxtor Corporation Fair buffer credit distribution flow control
US6738813B1 (en) * 2000-09-11 2004-05-18 Mercury Interactive Corporation System and method for monitoring performance of a server system using otherwise unused processing capacity of user computing devices
GB0113844D0 (en) * 2001-06-07 2001-08-01 Marconi Comm Ltd Real time processing
JP3904922B2 (ja) 2001-12-28 2007-04-11 株式会社日立製作所 トラヒックシェーパーおよび集線装置
US7307949B1 (en) * 2002-11-19 2007-12-11 Juniper Networks, Inc. Hierarchical policers for enforcing differentiated traffic behavior
CA2529128A1 (en) * 2003-06-13 2005-01-06 Dow Global Technologies Inc. High performance polyurethane carpet backings containing modified vegetable oil polyols
JP4036799B2 (ja) 2003-07-29 2008-01-23 京セラ株式会社 通信装置
JP4710559B2 (ja) 2005-11-15 2011-06-29 Kddi株式会社 トークンバッファサイズを制御する通信端末及びシステム
US20070147404A1 (en) * 2005-12-27 2007-06-28 Lucent Technologies, Inc. Method and apparatus for policing connections using a leaky bucket algorithm with token bucket queuing
CA2655555A1 (en) * 2006-06-19 2007-12-27 Liquid Computing Corporation Methods, systems and protocols for application to application communications
US7760641B2 (en) 2006-07-10 2010-07-20 International Business Machines Corporation Distributed traffic shaping across a cluster
US20080077932A1 (en) * 2006-09-25 2008-03-27 International Business Machines Corporation Mechanism for Automatically Managing the Resource Consumption of Transactional Workloads
US7948882B2 (en) * 2006-10-09 2011-05-24 Agere Systems Inc. Dual leaky bucket flow control method and system
US20110078303A1 (en) * 2009-09-30 2011-03-31 Alcatel-Lucent Usa Inc. Dynamic load balancing and scaling of allocated cloud resources in an enterprise network
US8190593B1 (en) * 2010-04-14 2012-05-29 A9.Com, Inc. Dynamic request throttling
US8542594B2 (en) 2010-06-28 2013-09-24 Kddi Corporation Traffic control method and apparatus for wireless communication
CN102299861B (zh) * 2011-09-22 2015-09-02 迈普通信技术股份有限公司 一种报文流量控制方法

Also Published As

Publication number Publication date
KR101903623B1 (ko) 2018-10-04
SG11201510427QA (en) 2016-01-28
JP6247388B2 (ja) 2017-12-13
JP2018077852A (ja) 2018-05-17
KR20180014883A (ko) 2018-02-09
EP3014804A1 (en) 2016-05-04
KR101948502B1 (ko) 2019-02-14
SG10201709194PA (en) 2017-12-28
JP2016529597A (ja) 2016-09-23
EP3014804B1 (en) 2019-08-07
WO2014210221A1 (en) 2014-12-31
KR101865318B1 (ko) 2018-06-08
KR20180063371A (ko) 2018-06-11
EP3014804A4 (en) 2017-03-01
CA2915996C (en) 2020-06-30
CN105409171A (zh) 2016-03-16
AU2017203274A1 (en) 2017-06-08
AU2017203274B2 (en) 2018-06-21
AU2014302426A1 (en) 2016-01-28
CA2915996A1 (en) 2014-12-31
KR20180108901A (ko) 2018-10-04
AU2014302426B2 (en) 2017-02-23
CN105409171B (zh) 2019-03-29
KR20160020529A (ko) 2016-02-23
KR101826969B1 (ko) 2018-03-22

Similar Documents

Publication Publication Date Title
JP6530471B2 (ja) バーストモード制御
US9917782B2 (en) Equitable distribution of excess shared-resource throughput capacity
US9471393B2 (en) Burst-mode admission control using token buckets
US9385956B2 (en) Compound token buckets for burst-mode admission control
US9218221B2 (en) Token sharing mechanisms for burst-mode operations
US10764185B2 (en) Token-based policies burst-mode operations
US7634430B2 (en) System and method for allocating resources in a distributed computational system using proportional share auctions
US8667499B2 (en) Managing allocation of computing capacity
US7739155B2 (en) Automatically distributing a bid request for a grid job to multiple grid providers and analyzing responses to select a winning grid provider
US8041599B2 (en) Method, system, and program product for selecting a brokering method for obtaining desired service level characteristics
US20130346227A1 (en) Performance-Based Pricing for Cloud Computing
CN112997469A (zh) 用于分布式计算和存储的智能、分散和自主市场
Nunez et al. Leveraging slack capacity in IaaS contract cloud services
Toosi On the Economics of Infrastructure as a Service Cloud Providers: Pricing, Markets and Profit Maximization
Du et al. Leveraging Slack Capacity in IaaS Contract Cloud Services
Das Market mechanisms for grid computing

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190118

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190416

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190516

R150 Certificate of patent or registration of utility model

Ref document number: 6530471

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250