(57)【特許請求の範囲】
【請求項１】
コンピュータシステムの１つ又は複数のプロセッサによって実行される、１つ又は複数のワークロード上の作業を実行するためにコンピュータシステムのリソースの限られたセットを効率的に割当てる方法であって、該方法は、
コンピュータシステムのリソースを識別した後、割り当てられたワークロードを完了するために使用可能な１つ又は複数のリソーススライスを生成するために前記コンピュータシステムのリソースをスライスするステップと、
前記コンピュータシステムにおいてワークロードを受け取るステップと、
実行のためにリソーススライスに前記ワークロードを割り当てるステップであって、キューは前記リソーススライスに関連付けられ、前記ワークロードは、実行待ちの間に前記キューに配置される、ステップと、
前記ワークロードが１つ又は複数のチェックポイントを含むと決定した後、前記ワークロードのチェックポイントの少なくとも１つと前記リソーススライスの終了部分との間の近接性を決定するステップと、
（１）前記少なくとも１つのワークロードのチェックポイントと、前記リソーススライスの終了部分との間の近接性と、（２）前記リソーススライスの１つ又は複数の特性とに基づいて、前記リソーススライスからワークロードを削除するための削除時間を決定するステップと、
前記ワークロードのチェックポイントの少なくとも１つと、前記リソーススライスの終了部分との間の近接性が、近接要件を満たしていると決定した後、前記リソーススライスに前記削除時間を超えて前記ワークロードを実行させるステップと、そして
前記削除時間が経過した後、前記ワークロードを前記リソーススライスから削除させるステップと、を含む方法。
【請求項２】
前記１つ又は複数のリソーススライスは、計時済みのプロセッサ使用量の１つ又は複数である、請求項１に記載の方法。
【請求項３】
前記ワークロードを前記リソーススライスから削除させるステップは、
前記ワークロードを、削除時間を超えた所定の延長内の前記リソーススライスから削除するステップを備える、請求項１に記載の方法。
【請求項４】
前記リソーススライスは、時間スライス、コマンドの数、プロセッサリソースの量、ネットワークリソースの量、ストレージリソースの量、サンドボックス実行環境リソースの量、メモリ量、又はＩ／Ｏ量のうち１つ又は複数を備える、請求項１に記載の方法。
【請求項５】
前記リソーススライスは、動的に構成可能である、請求項１に記載の方法。
【請求項６】
請求項１に記載の方法であって、前記方法は、
前記ワークロードが完全に実行されずに前記リソーススライスから以前に削除されたことを決定するステップと、 そして
前記ワークロードが完全に実行されていないという決定に応答して、補正機能を実行するステップとをさらに備える、請求項１に記載の方法。
【請求項７】
前記補正機能は、前記ワークロードを終了することを備える、請求項６に記載の方法。
【請求項８】
前記補正機能は、前記リソーススライスを拡張することを含む、請求項６に記載の方法。
【請求項９】
請求項１に記載の方法であって、前記方法は、
異なるリソーススライスの異なるキューが空であることを識別するステップと、そして
前記異なるリソーススライスが、待ち行列に入れられたワークロードを有さないとの識別に応答して、前記削除時間を延長するステップと
をさらに備える方法。
【請求項１０】
複数のチェックポイントに基づいて前記ワークロードの建設的な処理をユーザに通知するステップをさらに備える、請求項１に記載の方法。
【請求項１１】
コンピュータ実行可能命令が記憶された１つ又は複数のコンピュータ可読ハードウェア記憶装置であって、コンピュータ実行可能命令はコンピュータシステムの１つ又は複数のプロセッサによって実行可能であり、コンピュータシステムにコンピュータシステムの限定されたリソースセットを効率的に割り当てさせ、コンピュータシステムに、
前記コンピュータシステムのリソースを識別した後、割り当てられたワークロードを完了するために使用可能な１つ又は複数のリソーススライスを生成するよう前記コンピュータシステムのリソースをスライスするステップと、
前記コンピュータシステムでワークロードを受信するステップと、
実行のためにリソーススライスに前記ワークロードを割り当てるステップであって、前記リソーススライスにキューが関連付けられ、前記ワークロードが実行待ちの間に前記キューに配置される、ステップと、
前記ワークロードが１つ又は複数のチェックポイントを含むと決定した後、前記ワークロードのチェックポイントの少なくとも１つと、前記リソーススライスの終了部分との間の近接性を決定するステップと、
（１）前記ワークロードのチェックポイントと、前記リソーススライスの終了部分との間の近接性、および（２）前記リソーススライスの１つ又は複数の特性とに基づいて、前記リソーススライスから前記ワークロードを削除するための削除時間を決定するステップと、
前記ワークロードのチェックポイントの少なくとも１つと、前記リソーススライスの終了部分との間の近接性が近接要件を満たすと決定した後、前記リソーススライスに削除時間を越えて前記ワークロードを実行させるステップと、そして
前記削除時間が経過した後、前記ワークロードが前記リソーススライスから削除されるようにするステップと
を行わせることにより、１つ又は複数のワークロードで作業を実行する、コンピュータ可読媒体。
【請求項１２】
前記コンピュータ実行可能命令の実行は、前記コンピュータシステムにさらに、
異なるリソーススライスの異なるキューが空であることを識別させ、
前記削除時間を延長させる
請求項１１に記載のコンピュータ可読媒体。
【請求項１３】
前記コンピュータ実行可能命令の実行はさらに、前記コンピュータシステムに前記リソーススライスを拡張させる、請求項１１に記載のコンピュータ可読媒体。
【請求項１４】
前記コンピュータ実行可能命令の実行はさらに、前記コンピュータシステムに、
所定数のタスク削除が実行されたときに前記ワークロードを終了させる、請求項１１に記載のコンピュータ可読媒体。
【請求項１５】
コンピュータシステムであって、
１つ又は複数のプロセッサと、
コンピュータ実行可能命令を記憶した１つ又は複数のコンピュータ可読ハードウェア記憶装置であって、前記コンピュータ実行可能命令は、前記１つ又は複数のプロセッサによって実行可能であり、前記コンピュータシステムに、前記コンピュータシステムのリソースを効率的に割り当てさせ、コンピュータシステムに、
前記コンピュータシステムのリソースを識別した後、割り当てられたワークロードを完了するために使用可能な１つ又は複数のリソーススライスを生成するために前記コンピュータシステムのリソースをスライスし、
前記コンピュータシステムでワークロードを受信し、
実行のためにリソーススライスに前記ワークロードを割り当てし、前記リソーススライスにキューが関連付けられ、前記ワークロードが実行待ちの間に前記キューに配置されており、
前記ワークロードが１つ又は複数のチェックポイントを含むと決定した後、前記ワークロードのチェックポイントの少なくとも１つと、前記リソーススライスの終了部分との間の近接性を決定し、
前記ワークロードのチェックポイントの少なくとも１つと、前記リソーススライスの終了部分との間の近接性に少なくとも部分的に基づいて、前記リソーススライスから前記ワークロードを削除するための削除時間を決定し、
前記ワークロードのチェックポイントの少なくとも１つと、リソーススライスの終了部分との間の近接性が近接要件を満たすと決定した後、前記リソーススライスに前記削除時間を越えて前記ワークロードを実行させ、そして
前記削除時間が経過した後、前記ワークロードをリソーススライスから削除されるようさせる
ことを行わせることによって、１又は複数のワークロードで作業を実行する、コンピュータシステム。
【請求項１６】
前記削除時間は、プレミアムの支払い時に延長可能である、請求項１５に記載のコンピュータシステム。
【請求項１７】
前記コンピュータ実行可能命令の実行は、前記コンピュータシステムに、さらに、
１つ又は複数のチェックポイントのそれぞれが、前記ワークロードのワークフロー内のどこに位置するかを決定する
ことを行わせる、請求項１５に記載のコンピュータシステム。
【請求項１８】
前記コンピュータ実行可能命令の実行は、前記コンピュータシステムに、さらに、
前記ワークロードが前記リソーススライスによって完全に実行されなかったかを決定し、そして
前記ワークロードが完全に実行されなかったと決定した場合に、前記ワークロードに追加のチェックポイントが必要であるという通知を提供する
ことを行わせる、請求項１５に記載のコンピュータシステム。
【請求項１９】
前記リソーススライスに前記ワークロードを実行させることは、
第１のチェックポイントに達すると、第１の時間前記ワークロードをメモリに保持すること、そして
前記第１の時間前記ワークロードをメモリに保持した後、前記リソーススライスが前記ワークロードを実行し続けるようにすること、
を備える、請求項１５に記載のコンピュータシステム。
【請求項２０】
前記リソーススライスに前記ワークロードを実行させることは、
第２のチェックポイントに達すると、第２の時間前記ワークロードをメモリに保持すること、そして
前記第２の時間前記ワークロードをメモリに保持した後、前記リソーススライスが前記ワークロードを実行し続けるようにすること
をさらに備える、請求項１９に記載のコンピュータシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]コンピューティングシステムの相互接続は、いわゆる「クラウド（ｃｌｏｕｄ）」コンピューティングシステム等の分散コンピューティングシステムを促進してきた。本明細書において、「クラウドコンピューティング（ｃｌｏｕｄ  ｃｏｍｐｕｔｉｎｇ）」は、管理労力又はサービスプロバイダ相互作用が減少した状態で準備されリリースされる可能性がある構成可能なコンピューティングリソース（例えば、ネットワーク、サーバ、ストレージ、アプリケーション、サービス等）の共有プールに対する、ユビキタスで好都合でオンデマンドのアクセスを可能にするためのシステム又はリソースであってよい。クラウドモデルは、種々の特性（例えば、オンデマンド・セルフサービス、ブロードネットワークアクセス、リソースプーリング、迅速な順応性、測定式サービス等）、サービスモデル（例えば、サービスとしてのソフトウェア（「ＳａａＳ：Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ」）、サービスとしてのプラットフォーム（「ＰａａＳ：Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ」）、サービスとしてのインフラストラクチャ（「ＩａａＳ：Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ」））、及び配備モデル（例えば、プライベートクラウド、コミュニティークラウド、パブリッククラウド、ハイブリッドクラウド等）からなる可能性がある。
【０００２】
[0002]幾つかのクラウドプロバイダは、パーティション分割式スケールアップアプローチを使用して、サービスが、使用の増加についてスケーリングすることを可能にする。サービスは、ユーザの知られているセットをサポートするスケールユニット（リソースの有限セット）の概念を実装する。既存のスケールユニットについてユーザ数制限に達すると、容量は、必要に応じて更なるスケールユニットを付加することによって付加される。ユーザ数制限は、ユーザであって、そのワークロード要求の全てを実行することになるスケールユニットに対してアフィニティ設定されることになる、ユーザの所与の数として規定される。
【０００３】
[0003]スケールユニット内の利用可能なリソースのセットは、有限かつ固定であるが、システムは、ワークロードが実行時間を保証される点で、エンドユーザ・サービスレベルアグリーメント（ＳＬＡ：ｓｅｒｖｉｃｅ  ｌｅｖｅｌ  ａｇｒｅｅｍｅｎｔ）を侵害することなく、アフィニティ設定されたユーザによって要求されるいろいろなワークロード負荷を扱うことができなければならない。その問題を解決する可能性がある種々の方法が存在する。
【０００４】
[0004]１つの方法は、動的にスケールアウト又はスケールアップすることである。このアプローチは、目下のデマンド因子に基づいてシステムリソースのジャストインタイムの追加又は除去を必要とする。ライブの実行中のサービスに対してこうしたアプローチを実装することは、柔軟に拡張又は収縮するときの時間的懸念のせいで、容量の点で必要とされることになるバッファは言うまでもなく、実装し維持することが難しい独立因子の全セットを必要とする。
【０００５】
[0005]別の解決策は、ワークフロー分析に基づいてワークロード継続時間を決定することである。その目的は、或る継続時間を超えるワークロードが実行されることを防止することである。この解決策は実装するのが難しい。例えば、ワークフローは、呼出されることを防止されることになる無限ループとして内部的に実装される単一呼出しを含む可能性がある。更に、ワークフローにおいてユーザが使用するのを許可される活動のセットを制限することは、悪いユーザ体験を生成する。
【０００６】
[0006]本明細書で特許請求される主題は、任意の欠点を解決する、又は、上述したような環境でのみ作動する実施形態に限定されない。むしろ、背景技術は、本明細書で述べる幾つかの実施形態が実施されてもよい１つの例示的な技術領域を示すために提供されるだけである。
【発明の概要】
【課題を解決するための手段】
【０００７】
[0007]本明細書に示す一実施形態は、コンピューティングリソースを複数のテナントに提供する分散コンピューティング環境において実施されてもよい方法を含む。方法は、限られたセットのシステムリソースをテナントに割当てるための行為を含む。方法は、リソーススライスを識別することを含む。方法は、実行用テナントワークロードを識別することを更に含む。実行用テナントワークロードのためのチェックポイント特性が識別される。チェックポイント特性及びリソーススライスに基づいて、タスク削除イベントが識別される。
【０００８】
[0008]別の実施形態は、クラウドサービスであって、限られたセットのリソースをクラウドサービスのテナントに公平に割当てるように構成される、クラウドサービスを含む。クラウドサービスはスケジューリングサービスを含む。スケジューリングサービスは、クラウドサービスのテナントからワークロードを受信するように構成される。クラウドサービスは、スケジューリングサービスに結合された複数のワーカーを含む。ワーカーは、スケジューリングサービスからワークロードを受信するように構成される。ワーカーは、タスク削除イベントがリソーススライス及びワークロードチェックポイント処理に基づくように、ワークロードのチェックポイント処理の評価と連携してリソーススライスに基づいてテナントからのワークロードを実行するように構成される。
【０００９】
[0009]この課題を解決するための手段は、以下の発明を実施するための形態において更に述べられる概念の選択を簡略化した形態で導入するために提供される。この課題を解決するための手段は、特許請求される主題の重要な特徴及び本質的な特徴を識別することも意図されず、特許請求される主題の範囲を決定するときの補助として使用されることも意図されない。
【００１０】
[0010]更なる特徴及び利点は、次に続く説明において述べられることになり、また、一部には、その説明から明らかになることになる、又は、本明細書の教示の実施によって学習されてもよい。本発明の特徴及び利点は、添付特許請求の範囲で特に指摘される機器及び組合せによって実現され取得されてもよい。本発明の特徴は、以下の説明及び添付特許請求の範囲からより完全に明らかになる、又は、以降で述べる本発明の実施によって学習されてもよい。
【００１１】
[0011]先に述べたまた他の利点及び特徴が得られる可能性がある方法を述べるため、簡潔に上述した主題のより特定の説明が、添付図において示される特定の実施形態を参照して行われる。これらの図面が、典型的な実施形態を示すだけであり、したがって、範囲において制限的であると考えられないことを理解すると、実施形態は、添付図面の使用によって、更なる特異性及び詳細を持って述べられ説明される。
【図面の簡単な説明】
【００１２】
【図１】[0012]クラウドリソースを公平に割当てるように構成されるクラウドベースシステムを示す図である。
【図２】[0013]時間スライスが期限切れになると起こる削除イベントを示す図である。
【図３】[0014]時間スライスの所定の部分で起こる削除イベントを示す図である。
【図４】[0015]時間スライスの所定の部分に存在するチェックポイント処理に基づいて延長される時間スライスを示す図である。
【図５】[0016]時間スライスの所定の部分に存在するチェックポイント処理に基づいて延長される時間スライスを示す図である。
【図６】[0017]分散コンピューティングシステムの複数のテナントにリソースを提供するための方法を示す図である。
【発明を実施するための形態】
【００１３】
[0018]本明細書で示す幾つかの実施形態は、システムリソースの衡平シェアリングを保証する方法として、持続され、削除され、最後の持続状態から後で再開される可能性があるワークロード（すなわち、チェックポイント処理されるワークロード）について、保証済み実行リソーススライスを実装する。種々の異なるリソースがスライスされる可能性がある。例えば、１つ又は複数のシステムリソースの時間スライスが実装される可能性がある。そのため、例えば、スライスは、或る計時済み量のプロセッサ、或る計時済みの量のメモリアクセス、或る計時済み量のストレージアクセス、或る計時済み量のネットワーク使用、又はその組合せのうちの１つ又は複数であってよい。代替的に又は付加的に、リソーススライスは、幾つかのコマンド（例えば、スクリプト活動）である可能性がある。代替的に又は付加的に、リソーススライスは、幾つかのプロセッサ動作である可能性がある。代替的に又は付加的に、リソーススライスは、ネットワーク上を伝送される或る量のデータ等の或る量のネットワークリソースである可能性がある。代替的に又は付加的に、リソーススライスは、ストレージデバイスへ／からの或る量のＩ／Ｏ等の或る量のストレージリソースである可能性がある。代替的に又は付加的に、リソーススライスは、サンドボックス実行環境リソースである可能性がある。代替的に又は付加的に、リソーススライスは、或る量のメモリリソースである可能性がある。幾つかの異なるリソースが単独で又は組合せて使用される可能性があるが、以下の例は、時間スライスの文脈で示されるが、他のリソーススライスが代用される可能性がある。
【００１４】
[0019]ここで図１を参照すると、１つの例が示される。図１で示す例において、クラウドサービス１００は、クラウドサービス１００のテナント１０２−１、１０２−２、１０２−３〜１０２−ｎについてワークロードを実施する。示されるこの例において、テナントは、ワークロード１０４−１、１０４−２、１０４−３〜１０４−ｍをスケジューリングサービス１０６に送信する。スケジューリングサービス１０６は、ワークロードを、種々のワーカー１０８−１、１０８−２、１０８−３〜１０８−ｐに割当てる。ワーカーは、クラウドサービス１００の幾つかの（ｃｅｒｔａｉｎ）リソースを使用する。
【００１５】
[0020]リソースが公平にシェアリングされることを保証するため、ワークロードは、実施される機会を他のワークロードに与えるためにそのワークロードが削除される前に、所与の量のリソースを使用することだけを許可されてもよい。ワークロードは、削除時に完了していない場合、クラウドサービスリソースを使用する別の順番を与えられるように、スケジューリングサービス１０６において再び待ち行列に入れられることになる。
【００１６】
[0021]１つの典型的な例において、リソースは時間スライスされることになる。そのため、例えば、ワークロードは、或る量の時間を与えられて、完了してもよい、又は、ワークロードがワーカーに再び割当てられると、ワークロードが持続状態から継続されるように、ワークロード上の作業が容易に持続される可能性があるチェックポイントに達してもよい。ワークロードがチェックポイントに達し持続する場合、ワークロードは削除される可能性がある。これによってワークロードについて実施された作業が持続する。ワークロードがその量の時間（又は、他の実施形態における、他のリソーススライス割当て）を超える場合、ワークロードは、状態が持続できなくても削除される。これは、ワークロード上で行われ得る作業の損失（ｌｏｓｓ）をもたらすことになる。そのため、ワークロードは、ワーカー１０８−１等のワーカーに割当てられてもよい。ワーカーは、この例では、所定の時間量の期限切れまでワークロードを実施することになる。ワークロード持続がされない状態で、時間切れになる場合、ワークロードは削除されることになる。ワークロードがチェックポイントに達し、持続される場合、ワークロードは、この場合も削除されることになる。
【００１７】
[0022]公平性はリソースが均等に分割されることを必ずしも意味しないことに留意されたい。公平性は、一部のテナントが他のテナントに比べてリソースのより多くの分け前を提供されることをもたらす幾つかの異なる因子を考慮してもよい。例えば、他のテナントより高いサービスレベルについてのプレミアムを支払ったテナントは、より大きなリソーススライスとしてリソースのより大きな分け前を割当てられてもよい。更に、以下で詳細に示すように、クラウドサービス１００は、ワークロードが或る規格に適合すると、リソースを使用するためのより大きな柔軟性を、インセンティブとして提供してもよい。
【００１８】
[0023]特に、実施形態は、チェックポイント処理をインセンティブ化してもよい。自分のワークロードを或る方法でチェックポイント処理するテナントは、リソーススライスの限度内で或る柔軟性が与えられてもよい。そのため、例えば、幾つかの実施形態は、ワークロードを削除するときを決定するために使用される発見的方法の一部として、チェックポイントに対する近接性を考慮してもよい。テナントは、自分のワークロードが好ましい処置を与えられるための除外近接性（ｐｒｏｓｃｒｉｂｅｄ  ｐｒｏｘｉｍｉｔｙ）を保証するよう、自分のワークロードにおいてチェックポイント処理を構築する可能性がある。
【００１９】
[0024]以下は、リソーススライスがプロセッサの時間スライスである例を示す。しかし、他のリソーススライスが、代替的に又は付加的に使用される可能性があることが、先に論じたように認識されるべきである。そのため、以下の例は、リソーススライスの範囲を時間スライスだけに限定するものと解釈されるべきでない。
【００２０】
[0025]幾つかの実施形態は、ワシントン州レドモンド（Ｒｅｄｍｏｎｄ  Ｗａｓｈｉｎｇｔｏｎ）のＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎから入手可能なＡｚｕｒｅ  Ａｕｔｏｍａｔｉｏｎ  Ｓｅｒｖｉｃｅワークロード管理を使用して実装されてもよい。しかし、実施形態は、実質上任意のマルチテナントシステムによって使用される可能性があり、実質上任意のマルチテナントシステムは、システムリソースの衡平シェアリングを提供しなければならず、種々の継続時間のワークロード（又は他のリソース描写）を実行し、ランタイム状態持続性をサポートする。
【００２１】
[0026]示される例において、テナントからやって来るワークロード要求（例えば、要求１０４−１〜１０４−ｍ）は、ワーカーのキュー（例えば、キュー１１０−１、１１０−２〜１１０−ｐ）のうちの１つのキューに配置され、そこから、要求は、システムリソース可用性に基づいてワーカー１０８−１〜１０８−ｐによって採取される。各ワーカーは、単一キューを処理するための責を負う。
【００２２】
[0027]ワークロードがメモリにロードされると、時間が記録される。実行中、ワークロードは、複数回、持続される可能性がある。ワークフローがいつ持続するかは、ワークフローオーサーによって決定される。実行時間スライスがいつ期限切れになるか、また、ワークロードがいつ最後に持続されたかに応じて、ワークロードは削除される。種々の削除ルールが実装されてもよい。幾つかの特定の例が示される。
【００２３】
[0028]例えば、図２を参照して、実行時間スライスの最後の１０％（又は何らかの他の選択されるパーセンテージ又は部分）においてチェックポイントを持たないワークロードは、実行時間スライスが期限切れになると削除される。図３を参照して、実行時間スライスの最後の１０％（又は何らかの他の選択されるパーセンテージ又は部分）においてチェックポイントを持つワークロードは、ワークロードが持続した直後に削除される。再アクティブ化されると、ワークロードがその実行をチェックポイントから継続するため、この挙動は、よりよい顧客体験をもたらす。
【００２４】
[0029]一変形において、実施形態は、ワークロードが時間スライスにわたって１０％（又は何らかの他の選択されるパーセンテージ又は部分）まで実行されることを可能にすることによって、頻繁なチェックポイントでワークロードに「報いること（ｒｅｗａｒｄｉｎｇ）」によってチェックポイント処理挙動をインセンティブ化する可能性がある。図４及び５に示すように、実行時間スライスの最後の１０％（又は何らかの他の選択されるパーセンテージ又は部分）においてチェックポイントを持つワークロードは、１０％（又は何らかの他の選択されるパーセンテージ又は部分）大きい時間スライスだけ、又は、ワークロードが削除される（図４参照）又は持続する（図５参照）まで、実行されることを許可される。
【００２５】
[0030]削除済み（ｅｖｉｃｔｅｄ）ワークフローのランタイムステータスが変化するのではなく、ワークロードがもはやメモリ内にないことを示す説明がワークロードに添付（ａｔｔａｃｈ）される。例えば、「実行中（Ｒｕｎｎｉｎｇ）」であるワークロードは、「実行し、リソースを待っている（Ｒｕｎｎｉｎｇ，  Ｗａｉｔｉｎｇ  ｆｏｒ  ｒｅｓｏｕｒｃｅｓ）」になる。
【００２６】
[0031]実施形態は、複数のワーカーの間でのワークロード分配を均等にする方法として、異なるワーカーに対する削除済みワークロードの割当てに対処してもよい。実施形態は、ワークロード配置決定を行うと、ワーカーに関するリソース利用の即座の履歴を考慮してもよい。削除済みワークロードは、利用可能なワーカーキューのうちの１つ（例えば、１１０−１〜１１０−ｐのうちの１つ）の背後に配置される。利用可能なキューは、ランダムに、又は、ワーカーリソース可用性に基づいて選択される可能性がある。
【００２７】
[0032]新しく割当てられたワーカー（例えば、１０８−１〜１０８−ｐのうちの１つ）がワークロードをキューから再び採取すると、ワークロードは、利用可能な最後のチェックポイントから再アクティブ化される。
【００２８】
[0033]この実行モデルを促進する、ワークフローにおけるチェックポイントの周りの幾つかの最良の慣行が存在する。ユーザは、ワークロードが頻繁に持続されること、及び、実行が冪等（べきとう）である（すなわち、ワークロードがチェックポイントから複数回実行される場合、結果が同じである）ことを保証すべきである。ワークロードが、チェックポイントを含まない、又は、何回かの試行後に既存のチェックポイントからどうしても進行できない場合、実施形態は、ワークロードを「失敗した（Ｆａｉｌｅｄ）」とマーク付けし、ワークロードを再アクティブ化しようと試みることを止める。テナントは、同様に、失敗を通知される可能性がある。幾つかの実施形態において、実施形態は、ワークロードがチェックポイント処理される、又は、より頻繁なチェックポイント処理を有する場合、ワークロードが成功する可能性が高いことをテナントに通知してもよい。
【００２９】
[0034]以下の議論は、ここで、実施されてもよい、幾つかの方法及び方法行為に言及する。方法行為が、或る順序で論じられてもよい、又は、特定の順序で起こるフローチャートで示されてもよいが、特定の順序付けは、具体的に述べられない限り必要とされない、又は、或る行為が、その行為が実施される前に完了される別の行為に依存するため必要とされない。
【００３０】
[0035]ここで図６を参照して、方法６００が示される。方法６００は、コンピューティングリソースを複数のテナントに提供する分散コンピューティング環境において実施されてもよい。方法は、限られたセットのシステムリソースをテナントに（公平な方法で）割当てるための行為を含む。方法は、リソーススライスを識別すること（行為６０２）を含む。例えば、リソーススライスは、時間スライス、幾つかのコマンド（例えば、スクリプト活動）、プロセッサリソース、ネットワークリソース、ストレージリソース、サンドボックス実行環境リソース、メモリ使用、Ｉ／Ｏ等のうちの１つ又は複数であってよい。
【００３１】
[0036]幾つかの実施形態において、リソーススライスは動的に構成可能である。そのため、例えば、リソーススライスは、幾つかの異なる因子に応じて大きさが変化する可能性がある。一例において、リソーススライスは手動設定に基づいて動的に再構成可能であってよい。そのため、クラウドサービスの管理者は、リソーススライスのサイズを手動で設定する可能性がある。代替的に又は付加的に、リソーススライスは負荷に基づいて動的に構成可能であってよい。そのため、例えば、リソースについて低いデマンドが存在する場合、リソーススライスは、リソースについて高いデマンドが存在する場合より大きい可能性がある。代替的に又は付加的に、リソーススライスは、１日の時間、１年の時間、季節等に基づいて動的に構成される可能性がある。そのため、例えば、電子商取引テナントを扱ったクラウドサービスは、１年の需要が少ない他の季節中と比べて、ホリデーショッピング季節中により小さなリソーススライス割当てを有してもよい
[0037]方法６００は、実行用テナントワークロードを識別すること（行為６０４）を更に含む。例えば、実施形態は、ワーカー（ワーカー１０８−１〜１０８−ｐのうちの１つのワーカー）上で実行するワークロードを識別してもよい。
【００３２】
[0038]方法６００は、実行用テナントワークロードのためのチェックポイント特性を識別することを更に含む。ワークフローは、クラウドサービスによって識別される可能性があるワークフロー内のチェックポイントを識別することになる。これは、チェックポイントがワークフロー内に存在するかどうか、チェックポイントがワークフロー内のどこに存在するか、ワークフローについてどれほどしばしば又はどれほど一貫してチェックポイント処理が実施されるか等を識別することを含んでもよい。
【００３３】
[0039]チェックポイント特性及びリソーススライスに基づいて、方法６００は、タスク削除イベントを識別すること（行為６０８）を更に含む。チェックポイントの場所は、タスク削除イベントがどのように起こるかまたいつ起こるかに影響を及ぼす場合がある。例えば、幾つかの実施形態において、タスク削除イベントを識別することは、リソーススライスの有効期限の前にチェックポイント処理が起こると、リソーススライスの有効期限の前にテナントワークロードを削除することを含む。これの例は、先の図３に示される。
【００３４】
[0040]代替的に又は付加的に、タスク削除イベントを識別することは、リソーススライスの有効期限の或る所定の延長内でチェックポイント処理が起こると、リソーススライスの有効期限のその所定の延長内でテナントワークロードを削除することを含む。これの例は、先の図５に示される。
【００３５】
[0041]方法６００は、テナントワークロードが、所定の回数チェックポイント処理されることなく、削除され続けることを決定することを含んでもよい。結果として、方法６００は、補正機能を実施することを含む。そのため、図２に示す例の場合、ワークロードは、チェックポイント処理される前に削除されてもよい。削除済みワークロードは、更なる１回又は複数回、再スケジューリングされ、リトライされてもよい。
【００３６】
[0042]ワークロードが、所定の回数、リトライされると、何らかの他の補正動作が実施されることになる。これは、ワークロードに対する補正動作である可能性がある。例えば、補正動作は、ワークロードの将来のリトライを防止するためワークロードを終了させることを含んでもよい。代替的に又は付加的に、補正動作は、何らかの更なるリソースがワークロードを実施することを許可するようリソーススライスを拡張することを含んでもよい。幾つかの実施形態において、これは、プレミアム購入、更なる量をテナントに自動的にチャージすること等によって実施されてもよい。代替的に又は付加的に、これは、テナントに関して実施される補正動作であってよい。例えば、テナントは、不十分なチェックポイント処理のせいで、ワークロードが完了できないことを通知されてもよい。幾つかの極端な場合、テナントは、クラウドサービスから締め出されてもよい、又は、チェックポイント処理要件に適合しないための或る仮採用状態（ｐｒｏｂａｔｉｏｎａｒｙ  ｓｔａｔｅ）に置かれてもよい。
【００３７】
[0043]方法６００は、ワークロードキュー上に負荷が全く存在しないことを識別し、結果として、ワークロードを通常なら削除しまうことになる、リソーススライス制約をワークロードが超えても、何らかのイベントを実施しないことを更に含んでもよい。そのため、例えば、ワークロードキュー内で保留される他のワークロードが全く存在せず、ワークロードが削除されるべきである場合、更なるリソースは、ワークロードが完了することを可能にすることを許可される可能性がある。
【００３８】
[0044]方法６００は、ユーザに、チェックポイントのユーザの使用に基づいてユーザのワークロードの建設的処置（リソーススライスを或る量だけ拡張すること等）を通知することを更に含んでもよい。例えば、テナントは、定期的に提供されるサービスレポートにおいて、チェックポイント処理のテナントの使用に基づいてワークロードが許可された建設的処置の量に関して通知されてもよい。代替的に又は付加的に、建設的処置が許可されるたびに、警告がテナントに発せられてもよい。他の方法が、代替的に又は付加的に、使用されて、ユーザに好ましい処置を通知してもよい。
【００３９】
[0045]更に、方法は、１つ又は複数のプロセッサ及びコンピュータメモリ等のコンピュータ可読媒体を含むコンピュータシステムによって実施されてもよい。特に、コンピュータメモリは、コンピュータ実行可能命令を記憶してもよく、コンピュータ実行可能命令は、１つ又は複数のプロセッサによって実行されると、実施形態において挙げた行為等の種々の機能を実施させる。
【００４０】
[0046]本発明の実施形態は、以下でより詳細に論じるコンピュータハードウェアを含む専用又は汎用コンピュータを備えてもよい。本発明の範囲内の実施形態は、同様に、コンピュータ実行可能命令及び／又は構造を保持又は記憶するための物理的なまた他のコンピュータ可読媒体を含む。こうしたコンピュータ可読媒体は、汎用又は専用コンピュータシステムによってアクセスされる可能性がある任意の利用可能媒体である可能性がある。コンピュータ実行可能命令を記憶するコンピュータ可読媒体は、物理的記憶媒体である。コンピュータ実行可能命令を保持するコンピュータ可読媒体は、伝送媒体である。そのため、制限としてではなく例として、本発明の実施形態は、少なくとも２つの全く異なる種類のコンピュータ可読媒体、すなわち物理的コンピュータ可読記憶媒体及び伝送コンピュータ可読媒体を備える可能性がある。
【００４１】
[0047]物理的コンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又は他の光ディスクストレージ（例えば、ＣＤ、ＤＶＤ等）、磁気ディスクストレージ又は他の磁気ストレージデバイス、或いは、任意の他の媒体であって、コンピュータ実行可能命令又はデータ構造の形態で所望のプログラムコード手段を記憶するために使用される可能性があり、汎用又は専用コンピュータによってアクセスされる可能性がある、任意の他の媒体を含む。
【００４２】
[0048]「ネットワーク（ｎｅｔｗｏｒｋ）」は、コンピュータシステム及び／又はモジュール及び／又は他の電子デバイスの間で電子データの搬送を可能にする１つ又は複数のデータリンクとして規定される。情報が、ネットワーク又は別の通信接続（実配線式、無線、又は実配線式又は無線の組合せ）を通じてコンピュータに転送又は提供されると、コンピュータは、接続を伝送媒体として適切に見なす。伝送媒体は、ネットワーク、及び／又は、データリンクであって、コンピュータ実行可能命令又はデータ構造の形態で所望のプログラムコード手段を保持するために使用される可能性があり、汎用又は専用コンピュータによってアクセスされる可能性がある、データリンクを含む可能性がある。上記の組合せは、同様に、コンピュータ可読媒体の範囲に含まれる。
【００４３】
[0049]更に、種々のコンピュータシステムコンポーネントに達すると、コンピュータ実行可能命令又はデータ構造の形態のプログラムコード手段は、伝送コンピュータ可読媒体から物理的コンピュータ可読記憶媒体へ（又はその逆に）、自動的に転送される可能性がある。例えば、ネットワーク又はデータリンクを通じて受信されるコンピュータ実行可能命令又はデータ構造は、ネットワークインタフェースモジュール（例えば、「ＮＩＣ」）内のＲＡＭ内でバッファリングされ、その後、コンピュータシステムＲＡＭに及び／又はコンピュータシステムの不揮発性コンピュータ可読物理的記憶媒体に最終的に転送される可能性がある。そのため、コンピュータ可読物理的記憶媒体は、伝送媒体を同様に（又は更に主に）利用するコンピュータシステムコンポーネントに含まれる可能性がある。
【００４４】
[0050]コンピュータ実行可能命令は、例えば、命令及びデータを含み、命令及びデータは、汎用コンピュータ、専用コンピュータ、又は専用処理デバイスに、或る機能又は機能のグループを実施させる。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語等の中間フォーマット命令、又は更にソースコードであってよい。主題が、構造的特徴及び／又は方法行為に固有の言語で述べられたが、添付特許請求の範囲で規定される主題が、述べた特徴又は上述した行為に必ずしも限定されないことが理解される。むしろ、述べる特徴及び行為は、特許請求の範囲を実装する例示的な形態として開示される。
【００４５】
[0051]パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、メッセージプロセッサ、手持ち式デバイス、マルチプロセッサシステム、マイクロプロセッサベース又はプログラマブル消費者向け電気機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、携帯電話、ＰＤＡ、ページャ、ルータ、スイッチ等を含む多くのタイプのコンピュータシステム構成を有するネットワークコンピューティング環境において本発明が実施されてもよいことを当業者は認識するであろう。本発明は、同様に、ネットワークを通して（実配線式データリンク、無線データリンク、又は実配線式データリンクと無線データリンクの組合せによって）リンクされるローカル及びリモートコンピュータシステムが共にタスクを実施する分散システム環境において実施されてもよい。分散システム環境において、プログラムモジュールは、ローカルとリモートの両方のメモリ記憶デバイス内に位置してもよい。
【００４６】
[0052]代替的に又は付加的に、本明細書で述べる機能は、１つ又は複数のハードウェアロジックコンポーネントによって少なくとも部分的に実施される可能性がある。例えば、また、限定することなく、使用される可能性がある例証的なタイプのハードウェアロジックコンポーネントは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定プログラム向け集積回路（ＡＳＩＣ）、特定プログラム向け標準製品（ＡＳＳＰ）、システムオンチップ・システム（ＳＯＣ）、コンプレックスプログラマブルロジックデバイス（ＣＰＬＤ）等を含む。
【００４７】
[0053]本発明は、本発明の精神又は特性から逸脱することなく、他の特定の形態で具現化されてもよい。述べられた実施形態は、全ての点で、制限的でなく、例証的であるとしてだけ考えられる。したがって、本発明の範囲は、先の説明によってではなく、添付特許請求の範囲によって示される。特許請求の範囲の均等物の意味及び範囲内に入る全ての変更は、その範囲内に包含される。
【図１】
0006599439.tif 000002
【図２】
0006599439.tif 000003
【図３】
0006599439.tif 000004
【図４】
0006599439.tif 000005
【図５】
0006599439.tif 000006
【図６】
0006599439.tif 000007