JP2014089776A - Attributing causality to program execution capacity modifications, and dynamic modifications of program execution capacity - Google Patents
Attributing causality to program execution capacity modifications, and dynamic modifications of program execution capacity Download PDFInfo
- Publication number
- JP2014089776A JP2014089776A JP2014031946A JP2014031946A JP2014089776A JP 2014089776 A JP2014089776 A JP 2014089776A JP 2014031946 A JP2014031946 A JP 2014031946A JP 2014031946 A JP2014031946 A JP 2014031946A JP 2014089776 A JP2014089776 A JP 2014089776A
- Authority
- JP
- Japan
- Prior art keywords
- program execution
- user
- group
- computing nodes
- computing
- 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.)
- Granted
Links
- 230000004048 modification Effects 0.000 title claims abstract description 237
- 238000012986 modification Methods 0.000 title claims abstract description 237
- 238000000034 method Methods 0.000 claims abstract description 99
- 230000008859 change Effects 0.000 claims description 170
- 238000012937 correction Methods 0.000 claims description 73
- 230000001364 causal effect Effects 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 19
- 230000000977 initiatory effect Effects 0.000 claims description 16
- 230000000306 recurrent effect Effects 0.000 abstract 1
- 230000000694 effects Effects 0.000 description 75
- 230000000875 corresponding effect Effects 0.000 description 66
- 230000006870 function Effects 0.000 description 26
- 238000012544 monitoring process Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 15
- 230000007423 decrease Effects 0.000 description 12
- 238000012423 maintenance Methods 0.000 description 12
- 230000027455 binding Effects 0.000 description 11
- 238000009739 binding Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 230000001960 triggered effect Effects 0.000 description 9
- 238000007792 addition Methods 0.000 description 8
- 230000000737 periodic effect Effects 0.000 description 8
- KJLPSBMDOIVXSN-UHFFFAOYSA-N 4-[4-[2-[4-(3,4-dicarboxyphenoxy)phenyl]propan-2-yl]phenoxy]phthalic acid Chemical compound C=1C=C(OC=2C=C(C(C(O)=O)=CC=2)C(O)=O)C=CC=1C(C)(C)C(C=C1)=CC=C1OC1=CC=C(C(O)=O)C(C(O)=O)=C1 KJLPSBMDOIVXSN-UHFFFAOYSA-N 0.000 description 7
- 238000005259 measurement Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000001816 cooling Methods 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000003252 repetitive effect Effects 0.000 description 3
- 101100229939 Mus musculus Gpsm1 gene Proteins 0.000 description 2
- 230000002730 additional effect Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
Description
本発明は、因果関係のプログラム実行容量修正への結論付け(attributing)、およびプログラム実行容量の動的な修正に関する。 The present invention relates to the attributing to causal program execution capacity correction, and to dynamic correction of program execution capacity.
多くの企業およびその他の組織が、(例えばローカルネットワークの一部として)同一場所に配置される、または代わりに(例えば1つ以上の非公開または公開の中間ネットワークを介して接続する)複数の別々の地形的位置に配置されるコンピューティングシステムによって等、それらの操作を支援するように、多数のコンピューティングシステムを相互接続するコンピュータネットワークを運用している。例えば、単一の組織によって、および、単一の組織の代わりに運営される非公開データセンタ、およびコンピューティングリソースを顧客に提供するためのビジネスとしてのエンティティによって運用される公開データセンタ等の非常に多くの数の相互接続されたコンピューティングシステムを収容するデータセンタが一般的になってきている。いくつかの公開データセンタ運用者は、ネットワークアクセス、電力、様々な顧客によって所有されるハードウェアの安全な設置施設を提供する一方で、他の公開データセンタ運用者は、さらに、その顧客が利用するために利用可能にされたハードウェアリソースを含む「フルサービス」施設を提供する。しかしながら、典型的なデータセンタの規模および範囲が増加するにつれて、物理的コンピューティングリソースを供給、運営および管理するタスクは、急速に複雑になってきている。 Many businesses and other organizations are co-located (eg, as part of a local network) or alternatively (eg, connected via one or more private or public intermediate networks) A computer network interconnecting a number of computing systems is operated to assist in their operation, such as with computing systems located at topographic locations. For example, a private data center operated by a single organization and on behalf of a single organization, and a public data center operated by an entity as a business to provide computing resources to customers, etc. Data centers that accommodate large numbers of interconnected computing systems are becoming commonplace. Some public data center operators offer secure installation facilities for network access, power, and hardware owned by various customers, while other public data center operators further use that customer Providing a “full service” facility that includes hardware resources made available to do so. However, as the size and scope of a typical data center increases, the tasks of supplying, operating and managing physical computing resources are rapidly becoming complex.
コモディティハードウェアの仮想化技法の出現により、多様なニーズを有する多くのユーザのための大規模なコンピューティングリソースの管理に関していくつかの利点がもたらされたことにより、多様なコンピューティングリソースを複数のユーザが効率的かつ安全に共有することが可能になった。例えば、VMWare、XEN、Linux(登録商標)のKVM(「Kernelベースの仮想マシン」)またはUser−Mode Linuxによって提供されるもの等の仮想化技法は、単一の物理的コンピューティングマシンによってホストされる1つ以上の仮想マシンを、各ユーザに提供することにより、複数のユーザの間で単一の物理的コンピューティングマシンを共有させることを可能にしてもよく、各々のこうした仮想マシンは、多様な仮想マシンの間のアプリケーション分離およびセキュリティを提供しながら、ユーザに、彼らが所与のハードウェアコンピューティングリソースの単独の運用者および管理者であるという幻想を抱かせる、個別の論理的なコンピューティングシステムとして作用するソフトウェアシミュレーションである。 The advent of commodity hardware virtualization techniques has brought several advantages in managing large-scale computing resources for many users with diverse needs. Users can share efficiently and securely. For example, virtualization techniques such as those provided by VMWare, XEN, Linux KVM ("Kernel-based virtual machine") or User-Mode Linux are hosted by a single physical computing machine. Providing one or more virtual machines to each user may allow a single physical computing machine to be shared among multiple users, each such virtual machine being diverse Separate logical computing devices that provide users with the illusion that they are the sole operator and administrator of a given hardware computing resource while providing application isolation and security between virtual machines Software simulation acting as an operating system Is a Deployment.
1人以上のユーザのためにプログラムを実行するために使用されるプログラム実行容量を管理するための技法を説明する。少なくともいくつかの実施形態において、管理されるプログラム実行容量は、1つ以上のプログラムを実行する際に、ユーザによる使用のために提供される1つ以上のコンピューティングノードの群を含む。加えて、ユーザに関連するコンピューティングノードの群は、群のうちのコンピューティングノードからユーザに利用可能なプログラム実行容量の量を管理するために使用中である間に、動的に修正される場合がある。ユーザに関連するコンピューティングノードの群に対する修正は、多様な実施形態において多様な形態(例えば、コンピューティングノードを動的に追加および/または削除すること等によって、群の中のコンピューティングノードの数を変更するために)を有する場合があり、多様な実施形態において多様な様式において(例えば、ユーザによって指定される動的命令に基づいて、ユーザによって以前に定義されたトリガが満たされたという自動判定に基づいて、群のうちのコンピューティングノードを提供しているサービスの自動操作に基づいて等)開始される場合がある。コンピューティングノードの群から利用可能なプログラム実行容量の動的修正に関する追加の詳細を以下に示す。加えて、少なくともいくつかの実施形態において、技法は、リモートユーザのプログラムを実行するために複数のコンピューティングノード(例えば、1つ以上の物理的コンピューティングシステム上でホストされる仮想マシンおよび/または複数の物理的コンピューティングシステム)を提供するネットワークからアクセス可能なプログラム実行サービス等、サービスの複数の顧客または他のユーザの代わりに複数のプログラムを実行するプログラム実行サービス(以下「PES」)と併用される場合がある。技法のいくつかまたは全てはまた、以下に詳細を記載するように、プログラム実行サービスシステムマネージャモジュールおよび/またはプログラム実行サービス容量保守マネージャモジュールによって自動的に実施される場合もある。 Techniques for managing program execution capacity used to execute a program for one or more users are described. In at least some embodiments, the managed program execution capacity includes a group of one or more computing nodes that are provided for use by a user in executing one or more programs. In addition, the group of computing nodes associated with the user is dynamically modified while in use to manage the amount of program execution capacity available to the user from the computing nodes of the group. There is a case. Modifications to a group of computing nodes associated with a user may vary in various embodiments in various forms (eg, dynamically adding and / or deleting computing nodes, etc.) In various embodiments (e.g., based on a dynamic instruction specified by the user, a trigger previously defined by the user has been met) in various embodiments. Based on the determination, it may be initiated (eg, based on an automatic operation of a service providing a computing node of the group). Additional details regarding dynamic modification of program execution capacity available from a group of computing nodes are provided below. In addition, in at least some embodiments, the technique includes a plurality of computing nodes (eg, virtual machines and / or hosted on one or more physical computing systems) to execute a remote user's program. Used in conjunction with a program execution service (hereinafter “PES”) that executes multiple programs on behalf of multiple customers or other users of the service, such as a program execution service accessible from a network that provides multiple physical computing systems) May be. Some or all of the techniques may also be performed automatically by the program execution service system manager module and / or the program execution service capacity maintenance manager module, as described in detail below.
上述のように、ユーザのために1つ以上のプログラムを実行している使用中のコンピューティングノードに対して実施される動的修正は、多様な形態を有する場合があり、多様な実施形態において多様な様式で開始される場合がある。一例として、コンピューティングノードの群のプログラム実行容量は、群の一部であるコンピューティングノードの数によって、少なくとも部分的に測定される場合があり、群のコンピューティングノード数を変更することによって(例えば、コンピューティングノード数を増加することによって、プログラム実行容量を増加するように、およびコンピューティングノード数を減少することによって、プログラム実行容量を減少するように)、修正される場合がある。そのようなコンピューティングノード数の修正は、例えば、コンピューティングノード数における所与の増減率が、群のコンピューティングリソースおよびプログラム実行容量の合計における同一または同様な増減率に対応する等、群の中のコンピューティングノードのいくつか、または全てが同一、または同様な量のコンピューティングリソース(例えば、メモリの量、ハードドライブ容量、CPU実行サイクル、ネットワーク帯域幅等)に対するアクセスを提供または有する状況において、使用される場合がある。他の実施形態において、群のうちのコンピューティングノードのいくつかまたは全ては、それらがアクセスを有するコンピューティングリソースの量に関して(例えば、2つ以上の別個の種類のコンピューティングノード構成が使用される場合、各コンピューティングノードが他のコンピューティングノードとは独立的に構成される場合等)、またはそうでなければ、それらが提供するプログラム実行容量の種類に関して(例えば、専用のハードウェア、ソフトウェアプログラムの種類に基づいて等)、1つ以上の顕著な様式において異なる場合があるが、それにもかかわらず、群のための動的プログラム実行容量修正は、少なくとも部分的に、群のコンピューティングノードの数を修正することに基づく場合、またはその代わりに、他の部分に詳細を記載するように、他の様式(例えば、ある種類のコンピューティングノード構成から別の種類へ変更する)に基づく場合がある。 As noted above, dynamic modifications performed on a computing node in use that is executing one or more programs for a user may have a variety of forms, and in various embodiments May start in a variety of styles. As an example, the program execution capacity of a group of computing nodes may be measured at least in part by the number of computing nodes that are part of the group, by changing the number of computing nodes in the group ( For example, it may be modified to increase program execution capacity by increasing the number of computing nodes and to decrease program execution capacity by decreasing the number of computing nodes. Such a modification of the number of computing nodes may, for example, provide a group with a given rate of increase / decrease in the number of computing nodes corresponding to the same or similar rate of increase / decrease in the sum of the group's computing resources and program execution capacity. In situations where some or all of the computing nodes in it provide or have access to the same or similar amount of computing resources (eg, amount of memory, hard drive capacity, CPU run cycles, network bandwidth, etc.) , May be used. In other embodiments, some or all of the computing nodes in the group are related to the amount of computing resources they have access to (eg, two or more distinct types of computing node configurations are used). If each computing node is configured independently of other computing nodes, etc.) or otherwise with respect to the type of program execution capacity they provide (eg, dedicated hardware, software programs) May vary in one or more salient ways, but nevertheless, dynamic program execution capacity modification for the group is at least partly of the group's computing nodes. Based on correcting the number, or instead of other parts As described in detail, it may be based on other modes (e.g., changing from one type of computing node configuration to another type).
さらに、少なくともいくつかの実施形態および状況においては、1つ以上のコンピューティングノードの群のプログラム実行容量は、群によって提供される1つ以上の種類のコンピューティングリソースの総計量(例えば、メモリの量、ハードドライブ容量、CPU実行サイクル、ネットワーク帯域幅等)に基づく等、コンピューティングノードの数以外の様式で測定され、修正される場合がある。加えて、少なくともいくつかの実施形態において、コンピューティングノードの群のプログラム実行容量を測定し、特定する際に、コンピューティングノードのいくつかまたは全ての地理的場所、コンピューティングノードのいくつかまたは全ての間の相互関係(例えば、多くても最大の地理的距離または少なくとも最小の地理的距離によって分類される、多くても最大のネットワークレイテンシまたは少なくとも最小のネットワークレイテンシによって分類される、同時に障害が発生する可能性が少ない、2つ以上の独立したデータセンタまたは他のコンピューティングノード集合体に分類される等)、専門のハードウェア性能および/またはソフトウェア性能の利用可能性等、追加の因子が考慮される場合がある。プログラム実行容量を測定および特定することに関して追加の詳細を以下に示す。 Further, in at least some embodiments and situations, the program execution capacity of a group of one or more computing nodes is a total metric (eg, of memory) of one or more types of computing resources provided by the group. May be measured and modified in a manner other than the number of computing nodes, such as based on volume, hard drive capacity, CPU execution cycle, network bandwidth, etc.). In addition, in at least some embodiments, in measuring and identifying the program execution capacity of a group of computing nodes, some or all geographic locations of the computing nodes, some or all of the computing nodes Correlation between (for example, classified by at most maximum geographical distance or at least minimum geographical distance, classified by at most maximum network latency or at least minimum network latency, simultaneous failures Additional factors such as availability of specialized hardware and / or software performance, etc.), which are classified as two or more independent data centers or other collections of computing nodes May be. Additional details regarding measuring and identifying program execution capacity are provided below.
ユーザのために1つ以上のプログラムを実行している使用中の群のコンピューティングノードを管理しているPESまたは他のシステムは、多様な様式において、コンピューティングノード群のための動的プログラム実行容量修正をどのように、いつ行うかを自動的に判定する場合がある。例えば、少なくともいくつかの実施形態および状況において、PESまたは他のシステムは、即時様式でいくつかの種類のプログラム実行容量修正を行う場合があり、一方で、他の種類のプログラム実行容量修正が、定期的またはそうでなければ再帰的様式(例えば、1つ以上の総計された修正の先行の実施以降等、期間中に行われるようにリクエスト、またはそうでなければ判定された複数の修正を延期し、総計するように)で実施される場合がある。複数のプログラム実行容量修正の判定が、期間にわたって総計される場合、総計された修正の判定に関する情報は、多様な様式において、プログラム実行容量修正の性能を向上させるために使用される場合がある。例えば、2つの判定されたプログラム実行容量修正が、反対の種類の修正(例えば、コンピューティングノードの数を増加/減少するように、利用可能な総計メモリを増加/減少するように等)に対応する場合、2つの修正は、相互を部分的にまたは完全に相殺するように選択されることによって、またはその代わりに、2つの修正のうちより高い優先度を実施し、他の修正を実施しないように選択することによって等、多様な様式で総計される場合がある。加えて、2つ以上の判定されたプログラム実行容量修正が、同様または補完的な種類の修正(例えば、コンピューティングノードの数を指定された量全て増加する、利用可能な総計メモリを指定された量全て増加する等)に対応する場合、それらの判定された修正は、多様な様式において、同様に総計される(例えば、最大、最小、最高の優先度を有するもの、最初に判定されたもの、最後に判定されたもの等、何らかの指定された条件を満たす単一の判定された修正を選択するように、多様な判定された修正を集積し、集積された修正量を使用する等)場合がある。多様な種類のプログラム実行容量修正をどのように、いつ行うかを判定することに関する追加の詳細を以下に示す。 A PES or other system that manages a group of computing nodes in use that are executing one or more programs for a user can perform dynamic program execution for the group of computing nodes in a variety of ways. There are cases where it is automatically determined how and when capacity correction is performed. For example, in at least some embodiments and situations, a PES or other system may make some type of program execution capacity modification in an immediate manner, while other types of program execution capacity modification Postpones requests to be made during a period, or otherwise determined to be periodic, such as on a regular or otherwise recursive basis (eg, since the previous implementation of one or more aggregated modifications) And so on). If multiple program execution capacity modification decisions are aggregated over a period of time, the information regarding the aggregated modification decisions may be used to improve the performance of the program execution capacity modification in a variety of ways. For example, two determined program execution capacity modifications correspond to opposite types of modifications (eg, increasing / decreasing the number of compute nodes, increasing / decreasing the total available memory, etc.) If so, the two modifications are selected to partially or completely offset each other, or instead, implement the higher priority of the two modifications and do not perform the other modifications May be aggregated in various styles, such as by selecting. In addition, two or more determined program execution capacity corrections are given similar or complementary types of corrections (eg, total available memory that increases the number of compute nodes by a specified amount). Those determined modifications are aggregated as well in various ways (eg, having the highest, lowest, highest priority, first determined) (E.g., collecting various determined corrections and using the accumulated correction amount to select a single determined correction that meets some specified condition, such as the last determined) There is. Additional details regarding determining how and when to perform various types of program execution capacity modifications are provided below.
加えて、PESまたは他のシステムが、ユーザの代わりに1つ以上のプログラムを実行しているコンピュータノードの群に対してプログラム実行容量修正を動的に実施する時、PESまたは他のシステムは、特定のプログラム実行容量修正に対する因果関係情報または他の責任を結論付けるための多様な操作をさらに実施する場合がある。責任の帰属は、例えば、各々が動的プログラム実行容量修正を生じさせることが可能である、関連期間中に発生していた特定のイベントを識別すること、およびイベントのうちの1つ以上を、その期間中またはその後に実施される動的プログラム実行容量修正のうちのいくつかまたは全てに結論付けることを含む場合がある。例えば、いくつかの動的プログラム実行容量修正は各々、少なくともいくつかの実施形態および状況において単一の特定のイベントによって開始される場合がある(例えば、群のコンピューティングノードが障害を発生、またはそうでなければ利用不可能になり、システムが群のための置換コンピュータノードの提供を自動的に即時に開始し、コンピューティングノードが利用不可能であることが、自動化されたシステム動作に置換コンピューティングノードの提供を発生させる単一のイベントである場合)。他の動的プログラム実行容量修正は各々、少なくともいくつかの実施形態および状況において、各々容量修正の原因であった、または原因であったかもしれない複数のイベントの組み合わせに結論付けられる場合がある(例えば、複数の独立したイベントが各々期間中に、群のコンピューティングノード数の増加をリクエストまたは指示し、期間の最後に単一のコンピューティングノード数の増加を実施するために総計し、多様な独立したイベントがその後合わせて、自動化されたシステム動作にコンピューティングノード数の増加を間接的に実施させる複数のイベントである場合)。 In addition, when a PES or other system dynamically implements program execution capacity modification for a group of computer nodes running one or more programs on behalf of a user, the PES or other system Various operations may be further performed to conclude causal information or other responsibilities for specific program execution capacity modifications. Responsibility attribution is, for example, identifying specific events that occurred during the relevant period, each of which can cause dynamic program execution capacity modifications, and one or more of the events: It may include concluding some or all of the dynamic program execution capacity modifications performed during or after that period. For example, some dynamic program execution capacity modifications may each be initiated by a single specific event in at least some embodiments and situations (eg, a group of computing nodes fails, or Otherwise, it becomes unavailable, the system automatically immediately provides a replacement computer node for the group, and the fact that the computing node is unavailable makes the replacement computer into automated system operation. Single event that triggers provisioning node). Each of the other dynamic program execution capacity corrections may conclude in a combination of multiple events, each of which may or may have been the cause of the capacity correction, in at least some embodiments and situations. For example, multiple independent events may request or direct an increase in the number of computing nodes in a group during each period, and may be aggregated to implement an increase in the number of single computing nodes at the end of the period, Independent events are then combined to allow automated system operation to indirectly increase the number of computing nodes).
ユーザに関連するコンピューティングノード群に対する特定の動的プログラム実行容量修正の責任の帰属は、例えば、ユーザがプログラム実行容量修正のうちの少なくともいくつかに対して課金される時(例えば、PESまたは他のシステムが、群の各コンピューティングノードを提供することに対して、プログラム実行容量の量の各々の他の測定に対して、および/または他の原理に基づいて、ユーザ顧客に課金する有料システムである場合)のような状況において、特定の利益を有する場合がある。そのような状況において、ユーザは、特定の動的プログラム実行容量修正に対応する課金に関する情報だけではなく、ユーザがそれらの動的プログラム実行容量修正の原因および適切性を確認することを可能にするように関連の責任帰属情報も受信し、検討することが可能な場合がある。少なくともいくつかのそのような実施形態において、責任帰属情報は、ユーザが、人間可読情報の中に含まれる、PESまたは他のシステムによって多様な自動化された動作がなぜ行われたかの説明を理解することを可能にするように、ユーザに表示するための人間可読形式で生成される場合がある。そのような責任帰属情報はまた、PESまたは他のシステムによって他の操作を自動的に開始することを含めて、他の実施形態において、多様な他の様式で使用される場合がある。加えて、少なくともいくつかの実施形態において、責任帰属情報は、どのイベントが特定の指示されたプログラム実行容量修正、または群の1つ以上のコンピューティングノードの利用可能性における他の変更の原因であるか、および/またはどのプログラム実行容量修正または他のコンピューティングノード群の利用可能性の変更が1つ以上の指示されたイベントによって生じたかを識別するためのリクエスト等、ユーザまたは他の情報源から受信される多様な種類のクエリに対する応答において生成および/または使用される場合がある。動的プログラム実行容量修正に対する責任帰属情報を判定し、使用することに関する追加の詳細を以下に示す。 The attribution of responsibility for a particular dynamic program execution capacity modification to a group of computing nodes associated with the user is, for example, when the user is charged for at least some of the program execution capacity modifications (eg, PES or other System charged to user customers for providing each computing node of the group, for each other measure of the amount of program execution capacity, and / or based on other principles In certain situations, it may have certain benefits. In such a situation, the user will be able to ascertain the cause and appropriateness of those dynamic program execution capacity modifications, as well as information about the billing corresponding to a particular dynamic program execution capacity modification. As such, it may be possible to receive and review related liability attribution information. In at least some such embodiments, liability attribution information allows the user to understand why various automated actions were performed by the PES or other system contained within the human readable information. May be generated in a human readable format for display to the user. Such responsibility attribution information may also be used in a variety of other ways in other embodiments, including automatically initiating other operations by a PES or other system. In addition, in at least some embodiments, responsibility attribution information may be due to which events are specific indicated program execution capacity modifications, or other changes in the availability of one or more computing nodes in the group. A user or other source of information, such as a request to identify which and / or which program execution capacity modification or other computing node availability change was caused by one or more indicated events May be generated and / or used in response to various types of queries received from. Additional details regarding determining and using responsibility attribution information for dynamic program execution capacity correction are provided below.
動的プログラム実行容量修正を自動的に管理するための前述の技法は、多様な状況において多用な利益を提供することができる。例えば、考慮される複数のリクエストまたは判定された動的プログラム実行容量修正を合わせて総計することによって、PESまたは他のシステムは、総計された修正がどのように実施されるかを最適化するとともに、追加の変更のためにコンピューティングノードのうちのいくつかまたは全ての一時的な利用不可能の期間を生じる場合があるコンピュータノードに対して反復変更を最小限にすることが可能な場合があり、加えて、ユーザは、コンピューティングノードの群の性能特性に基づく多様な種類のトリガを予め定義する場合があり、プログラム実行容量は、特定のトリガが満たされるに応じて適切に自動的に増加または減少される(例えば、コンピューティングノード群のコンピューティング負荷の一時的増加に対処するために、コンピューティングノード群のプログラム実行容量を応答的に増加する、プログラム実行容量使用の反復パターンを示す特定の性能特性および/または履歴データにおける経時的なトレンドに基づいて等、追加のプログラム実行容量に対して予測される近い将来の必要性および/または既存のプログラム実行容量に対して予測される近い将来の不要性に対処するために、コンピューティングノード群のプログラム実行容量を積極的に増加または減少する等)。代替として、ユーザは、特定レベル(例えば、コンピューティングノードの特定の所望の定数)で、またはこの近辺でコンピューティングノードの群に対するプログラム実行容量を維持することを望む場合があり、多様な修正は、その特定レベルで利用可能なプログラム実行容量を維持するように(例えば、特定の所望数とは異なっていた実際のコンピューティングノード数を、その特定の所望数に戻すように)、コンピューティングノードの群に自動的に行われる場合がある。そのような技法は、例えば、群のコンピューティングノードの各々が、同じプログラムの別個のコピーを実行し(例えば、群全体の総計コンピューティング負荷に対する代替として機能する)、コンピューティングノードの数が各コンピューティングノードによって処理される作業量を管理するように修正される時、あるいはそうでなければ、群の多様なコンピューティングノードが各々、同一プログラムの別個のコピーを実行しない状況において(例えば、いくつかのコンピューティングノードにアプリケーションサーバプログラムを実行させ、他のコンピューティングノードに関連のデータベースサーバプログラムを実行させる等、群の別個のサブセットのコンピューティングノードが各々異なるプログラムのコピーを実行する場合、コンピューティングノードのいくつかまたは全てが、分散様式のように、単一のプログラムの異なる部分を実施する場合等)、有用な場合がある。さらに、群に追加のコンピューティングノードを追加する時、PESまたは他のシステムは、1つ以上のプログラムを実行するために準備状態にある追加されたコンピューティングノードをプロビジョンする、または追加のコンピューティングノード上で1つ以上のプログラムの実行を自動的にさらに開始する等、少なくともいくつかの状況において、任意選択的に、他の動作をさらに行う場合がある。 The techniques described above for automatically managing dynamic program execution capacity modifications can provide a variety of benefits in a variety of situations. For example, by summing together multiple requests to be considered or determined dynamic program execution capacity modifications, PES or other systems optimize how the aggregated modifications are performed and It may be possible to minimize repetitive changes to computer nodes that may result in temporary unavailable periods of some or all of the computing nodes due to additional changes In addition, users may pre-define various types of triggers based on the performance characteristics of a group of computing nodes, and program execution capacity will automatically increase appropriately as specific triggers are met Or decreased (e.g., to deal with a temporary increase in computing load of computing nodes) Additional program execution capacity, such as based on specific performance characteristics and / or historical trends over time in historical data that show a repetitive pattern of program execution capacity usage, which responsively increases the program execution capacity of computing nodes Aggressively increase or decrease the program execution capacity of a group of computing nodes to address the anticipated near future need and / or the near future need predicted against existing program execution capacity Etc.) Alternatively, a user may desire to maintain program execution capacity for a group of computing nodes at or near a particular level (eg, a particular desired constant of computing nodes), and various modifications To maintain the program execution capacity available at that particular level (eg, to return the actual number of computing nodes that was different from the particular desired number back to that particular desired number) May be done automatically for groups of. Such a technique may be used, for example, where each of the group of computing nodes executes a separate copy of the same program (eg, acts as an alternative to the total computing load of the entire group) When modified to manage the amount of work processed by a computing node, or otherwise, in situations where each of the diverse computing nodes of the group does not execute a separate copy of the same program (eg, some If a separate subset of computing nodes execute different copies of a program, such as having one computing node execute an application server program and another computing node execute an associated database server program, Some or all of the computing nodes, as distributed manner, such as when carrying out the different parts of a single program) may be useful. Further, when adding additional computing nodes to the group, the PES or other system provisions additional computing nodes that are ready to execute one or more programs, or adds additional computing nodes. In at least some situations, other operations may optionally be further performed, such as automatically starting further execution of one or more programs on the storage node.
前述のように、ユーザは、コンピューティングノードの群のプログラム実行容量を動的に修正することに関する多様な種類のトリガを予め定義する場合があり、それらのトリガは、ユーザのコンピューティングノード群のための対応する自動化された動的プログラム実行容量修正を開始するために後で使用される場合がある。一例として、対応するコンピューティングノード群を所望のコンピューティングノード数または所望の総計コンピューティングリソース量に自動的に維持する、あるいは代わりに、指定された条件が満たされる場合に、指定されたコンピューティングノード数または総計コンピューティングリソース量に変更するために使用される場合がある等、コンピューティングノードの特定の所望数または1つ以上のコンピューティングリソースの所望の総計量を指定する、トリガが定義される場合がある。他の状況において、コンピューティングノード群の1つ以上の指示された性能特性が指定された閾値に到達する場合、またはそうでなければ指定された条件(例えば、指定された期間に指定された範囲内に留まる、指定された期間にわたって指定された量の変更、または特定の「加速」または変更率等、特定のトレンドを示す、プログラム実行容量使用の反復パターンを示す履歴データから等、1つ以上の指定されたパターンに一致またはその他対応する、AND、NOT、OR等の論理演算子を使用および/または他の様式で組み合わされる場合がある等、複数の性能特性の値の指定された論理的または他の組み合わせを満たす等)を満たす場合にトリガされる場合がある等、コンピューティングノード数あるいは1つ以上のコンピューティングリソースの総計量の具体的な絶対的または相対的変更を指定するトリガが定義される場合がある。他の実施形態および状況において、予め定義されたトリガは、そうでなければ、コンピューティングノード群の性能特性の部分ではない情報に基づいて(例えば、特定のトリガのための条件の一部または全てである1つ以上の指定された時間に一致する現在の時間に基づいて、例えば、待ち行列に入っている、またはそうでなければ1つ以上のプログラムによって実施されることがわかっているまたは予測されている作業の量によって示される現在のコンピューティング負荷等、性能特性以外の様式で測定される現在のコンピューティングノード群上で実行されている1つ以上のプログラムのステータス情報に基づいて、例えば、他の実行中のプログラム上のコンピューティング負荷が増加または減少するにつれて、現在のコンピューティングノード群のプログラム実行容量を増加するように、現在のコンピューティングノード群が他の実行中プログラムと相互作用またはそうでなければサポートしている場合等、現在のコンピューティングノード群によって実行されていない1つ以上の他の実行中のプログラムの性能特性または他のステータス情報に基づいて等)満たされる場合がある。そのような性能特性は、単一のコンピューティングノードの1つ以上のコンピューティングリソースの使用の絶対的または相対的量(例えば、使用されている利用可能なメモリまたはCPUサイクル利用のパーセント量、使用されているネットワーク帯域幅の絶対量等)、群のコンピューティングノードの全ての1つ以上のコンピューティングリソースの総計使用の絶対的または相対的量、外部のコンピューティングシステムからの通信に応答する際のレーテンシまたは他の遅延の絶対的または相対的量、1つ以上の所望の動作を実施する際のコンピューティングノードの障害の絶対的または相対的量等の非排他的リストを含む、群のコンピューティングノードのうちの1つ以上の測定可能な属性またはその操作に対応する他のメトリックに基づく場合がある。さらに、少なくともいくつかの実施形態および状況において、満たされる時に発生することになる特定のプログラム実行容量修正をトリガに直接指定させるのではなく、トリガが満たされると、指定されたシステムまたはモジュールが通知されるようにする場合があり、そのシステムまたはモジュールが、特定のプログラム実行容量修正をリクエストする場合がある(例えば、変動しない予め定義された容量修正、その時の現状に基づく等、通知時に動的に判定される容量修正等)。加えて、PESまたは他のシステムは、いくつかの実施形態において、群に関連するトリガの性能特性のいくつかまたは全てを判定するために、コンピューティングノードの群を監視するための多様な操作を実施する場合、またはそうでなければ、別の情報源から(例えば、コンピューティングノードを監視する第三者のソフトウェアから、そのコンピューティングノードを監視し、監視された情報を任意選択的に報告するように、コンピューティングノード上で実行しているソフトウェアから等)、そのような監視された性能特性を取得する場合がある。さらに、いくつかの実施形態において、PESまたは他のシステムは、トリガ条件が満たされることが指示された時に動的プログラム実行容量修正を開始するシステム定義トリガを有する場合、またはそうでなければ、指定された状況においてコンピューティングノード群にいくつかの種類の変更を行うことを自動的に判定する場合がある。 As mentioned above, a user may predefine various types of triggers related to dynamically modifying the program execution capacity of a group of computing nodes, and those triggers are May be used later to initiate a corresponding automated dynamic program execution capacity modification. By way of example, a corresponding computing node group is automatically maintained at a desired number of computing nodes or a desired amount of total computing resources, or alternatively specified computing is performed when specified conditions are met. A trigger is defined that specifies a specific desired number of computing nodes or a desired total metric of one or more computing resources, such as may be used to change to a node count or a total computing resource amount. There is a case. In other situations, if one or more indicated performance characteristics of the computing node group reach a specified threshold, or otherwise specified conditions (eg, a specified range for a specified period of time) One or more, such as from historical data that shows a recurring pattern of program execution capacity usage, indicating a specific trend, such as a specified amount of change over a specified period of time, or a specific “acceleration” or change rate Specified logical values of multiple performance characteristics, such as using and / or otherwise combining logical operators such as AND, NOT, OR, etc. that match or otherwise correspond to specified patterns of Or other combinations, etc.) that may be triggered, such as You may trigger specifying a specific absolute or relative change in the total metric ring resource is defined. In other embodiments and situations, the predefined trigger is based on information that is not otherwise part of the performance characteristics of the computing nodes (eg, some or all of the conditions for a particular trigger). Known or predicted to be, for example, queued or otherwise implemented by one or more programs, based on a current time that matches one or more specified times Based on status information of one or more programs running on a current set of computing nodes measured in a manner other than performance characteristics, such as the current computing load indicated by the amount of work being performed, for example As the computing load on other running programs increases or decreases, Not being executed by the current computing node group, such as when the current computing node group interacts with or otherwise supports other running programs to increase the program execution capacity of the node group (E.g., based on the performance characteristics of one or more other running programs or other status information). Such performance characteristics are an absolute or relative amount of use of one or more computing resources of a single computing node (eg, percent of available memory or CPU cycle usage being used, usage The absolute amount of network bandwidth being used), the absolute or relative amount of aggregate usage of all one or more computing resources of a group of computing nodes, in response to communication from an external computing system An absolute or relative amount of latency or other delay, including a non-exclusive list such as an absolute or relative amount of failure of a computing node in performing one or more desired operations To one or more measurable attributes or other metrics corresponding to its operation There is a case in which brute. Further, in at least some embodiments and situations, a specified system or module is notified when a trigger is satisfied, rather than causing the trigger to directly specify a particular program execution capacity modification that will occur when it is satisfied. The system or module may request a specific program execution capacity modification (eg, a predefined capacity modification that does not fluctuate, based on the current status, etc. The capacity is determined as follows). In addition, the PES or other system may, in some embodiments, perform various operations to monitor a group of computing nodes to determine some or all of the performance characteristics of the trigger associated with the group. If implemented, or otherwise, monitor the computing node and optionally report the monitored information from another information source (eg, from third party software that monitors the computing node) As such, from such software running on a computing node, such monitored performance characteristics may be obtained. Further, in some embodiments, a PES or other system has a system-defined trigger that initiates dynamic program execution capacity modification when the trigger condition is indicated to be met, or otherwise specified. In certain situations, it may be automatically determined to make some type of change to the computing nodes.
定義されたトリガが、コンピューティングノード数または1つ以上のコンピューティングリソースの総計量における特定の絶対的または相対的変更を指定し、定義されたトリガの1つ以上の指定された条件が、コンピューティングノードの対応する群に対して、現在の状況に基づいて満たされると自動的に判定される時、PESまたは他のシステムは、トリガに指定されたプログラム実行容量修正を実施するかどうか、どのように実施するかを自動的に判定する場合がある。例えば、いくつかの種類の指定されたプログラム実行容量修正は、即時に実施される場合があるが(例えば、1つ以上のコンピューティングノードの使用を終了するリクエスト、ユーザが即時実施に指定したトリガに基づくリクエスト等)、一方で、他の種類の指定されたプログラム実行容量修正は、その期間中にリクエストまたはそうでなければ判定された複数のプログラム実行容量修正の総計の一部として考慮するために総計期間の最後まで延期される場合がある。同様に、ユーザによって(例えば、PESまたは他のシステムのGUIすなわちグラフィカルユーザインターフェースを介して、PESまたは他のシステムの定義されたAPIすなわちアプリケーションプログラムインターフェースを介してユーザのプログラムによって等)動的にリクエストされるプログラム実行容量修正は、動的プログラム実行容量修正の種類に基づいて、即時または延期実施に対するユーザからの明示的なリクエストに基づいて等、即時に実施される、および/または一時的に延期され、同様な様式で総計されると判定される場合がある。さらに、複数の判定されたプログラム実行容量修正の組み合わせをどのように管理するかを判定する時、いくつかの状況においては、異なる優先度が、異なる判定された修正に関連付けられる場合がある。その場合、動的に指定されたユーザリクエストまたは他のユーザ命令には満たされたトリガとは異なる優先権が与えられる(例えば、より高いまたはより低い優先度)、異なる種類の判定された修正には異なる優先度が与えられる(例えば、プログラム実行容量を減少するリクエストには、プログラム実行容量を増加するリクエストよりも高い優先権が与えられる)等、そのような優先度は、多様な様式で評価される場合がある。ユーザ定義トリガを使用し、性能特性を判定することに関する追加の詳細を以下に示す。 The defined trigger specifies a specific absolute or relative change in the number of computing nodes or the total metric of one or more computing resources, and one or more specified conditions of the defined trigger are calculated by the computer. When a PES or other system automatically performs the program execution capacity modification specified in the trigger, it determines which is satisfied based on the current situation for the corresponding group of operating nodes. In some cases, it is automatically determined whether or not to implement. For example, some types of specified program execution capacity modifications may be implemented immediately (eg, requests to terminate use of one or more compute nodes, triggers specified by the user to be implemented immediately) On the other hand, other types of specified program execution capacity modifications are considered as part of the aggregate of requests or otherwise determined program execution capacity modifications during that period. May be postponed until the end of the total period. Similarly, dynamically requested by the user (eg, via a PES or other system GUI or graphical user interface, by a user program via a defined API or application program interface of the PES or other system, etc.) Program execution capacity modifications that are made may be implemented immediately and / or temporarily postponed based on the type of dynamic program execution capacity modification, such as based on an explicit request from the user for immediate or postponed implementation And may be determined to be aggregated in a similar manner. Further, when determining how to manage a combination of a plurality of determined program execution capacity modifications, in some situations, different priorities may be associated with different determined modifications. In that case, a dynamically specified user request or other user instruction is given a different priority than the satisfied trigger (eg higher or lower priority), for different types of determined modifications. Are given different priorities (for example, requests that reduce program execution capacity are given higher priority than requests that increase program execution capacity), and such priorities are evaluated in various ways. May be. Additional details regarding using a user-defined trigger to determine performance characteristics are provided below.
さらに、少なくともいくつかの実施形態において、PESまたは他のシステムは、対応する群のコンピューティングノードの複数の属性を追跡し、使用することに基づいて、またはそうでなければ、群の1つ以上のコンピューティングノードに各々関連する制御可能なパラメータに関して、複数の判定されたプログラム実行容量修正の定期的またはそうでなければ再帰的総計を管理する場合がある。一例として、コンピューティングノード群のプログラム実行容量に対応するメトリックとして、コンピューティングノード群のコンピューティングノード数を使用して、PESまたは他のシステムは、コンピューティングノード群に対して、コンピューティングノード群が開始された時に関連ユーザによって初期に設定される場合がある、トリガが満たされること、および/または動的に指定されたユーザリクエストによって修正される場合がある等、コンピューティングノード群の所望のコンピューティングノード数、群の現在利用可能なコンピューティングノードの実際のコンピューティングノード数(例えば、群のコンピューティングノードの継続的または反復監視によって判定される)、および群の現在利用可能なコンピューティングノードの公式記録のコンピューティングノード数(例えば、1つ以上の動的プログラム実行容量修正が開始される最後の時点に判定される、継続的または反復的な監視によって時々更新される際に任意選択的に判定される)等、少なくとも3つの相互関連測定値を維持し、使用する場合がある。コンピューティングノード群のそのような複数の属性は、実際の数を継続的または反復的に測定し、公式記録数をそれに従い更新する(例えば、群のコンピューティングノードの監視の実施に基づいて)、および現在の所望の数に一致するように、最新の公式記録数を更新するように定期的に試みる(例えば、複数の総計され判定された修正の組み合わせをどのように実施するか、実施するかどうかを考慮する時)等、多様な様式で使用される場合がある。 Further, in at least some embodiments, the PES or other system may be based on tracking or using multiple attributes of a corresponding group of computing nodes, or otherwise one or more of the group. For a controllable parameter associated with each of the computing nodes, a periodic or otherwise recursive aggregate of a plurality of determined program execution capacity modifications may be managed. As an example, using the number of computing nodes of a computing node group as a metric corresponding to the program execution capacity of the computing node group, a PES or other system may Desired by the computing node group, such as may be initially set by an associated user when the user is started, the trigger may be satisfied, and / or may be modified by a dynamically specified user request The number of computing nodes, the actual number of computing nodes in the group's currently available computing nodes (eg, determined by continuous or iterative monitoring of the group's computing nodes), and the group's currently available computing nodes Ting The number of computing nodes in the node's official record (eg, optional when updated from time to time by continuous or repetitive monitoring, determined at the last time one or more dynamic program execution capacity modifications are initiated) At least three correlated measurements may be maintained and used. Such multiple attributes of a group of computing nodes measure the actual number continuously or iteratively and update the official record number accordingly (eg, based on the implementation of monitoring of the group's computing nodes). , And periodically try to update the latest official record number to match the current desired number (e.g., how to implement a combination of multiple aggregated and determined corrections) May be used in various styles.
前述のように、PESまたは他のシステムはさらに、行われた特定の動的プログラム実行容量修正に対する因果関係情報または他の責任を結論付けるために多様な操作を実施する場合がある。例えば、前述のように、コンピューティングノード群の動的プログラム実行容量修正に対するリクエストに対応するイベントは、受信される動的なユーザ指定の命令、および満たされることが自動的に判定される予め定義されたトリガ、ならびにいくつかの実施形態においては、PESまたは他のシステムによって自動的に行われる動作を含めて、追跡される場合がある(例えば、コンピューティングノードがフリーズ、またはそうでなければ所望の動作を実施するために利用不可能になっていること、その現在のコンピューティングノード群の一部としてコンピューティングノードの使用を自動的にシャットダウンまたはそうでなければ終了すると判定される場合等、実施される監視に基づく)。同様に、発生するイベントおよび/または他の容量変更に対応する変更等のコンピューティングノード群のプログラム実行容量における実際の変更は、同様に追跡される場合がある(例えば、障害が発生またはそうでなければ利用不可能になっているコンピューティングノードのインスタンス)。一例として、多様なイベントに関する情報は、第1のデータベーステーブルに記憶される場合があり、容量の変更または他の利用可能性の変更に関する多様な情報は、第2のデータベーステーブルに記憶される場合がある。特定のイベントと、特定の利用可能性の変更との間の関係が識別される場合(例えば、特定のイベントが、特定の利用可能性の変更を即時に実施させる)、そのイベントと利用可能性の変更との間の対応する結合は、同一の結合に関する識別子を、そのイベントおよびその利用可能性の変更に対する他の情報と共に記憶することによって、追跡される場合がある。複数のイベントが個別にまたは組み合わされて、特定の利用可能性の変更を生じるが、因果関係が単一のイベントに結論付けられない他の状況において、単一の結合に関する識別子は、その利用可能性の変更およびそれらのイベントの各々に対する、ならびにそれらが同様にそれらの同じ複数のイベントに個別にまたは組み合わせて結論付けられる場合がある場合はさらに1つ以上の他の利用可能性の変更に対する、他の情報と共に記憶される場合がある。このため、例えば、所与のコンピューティングノード群に対する複数のイベントが単一の総計期間中に発生し、1つ以上のプログラム実行容量の変更がその同じ総計期間中またはその直後に発生する場合(例えば、総計期間の最後に実施される調和アクティビティの一部として)、かつそれらのイベントのどれもが1つ以上の容量の変更のうちのどれにも直接帰属可能ではない場合、複数のイベントの全ての組み合わせは、1つ以上の容量の変更の各々に結論付けられる場合がある。そのような因果関係帰属に関する詳細は、図2Bに関する記載を含めて、以下に示す。 As mentioned above, a PES or other system may also perform various operations to conclude causal information or other responsibilities for a particular dynamic program execution capacity modification that has been made. For example, as described above, an event corresponding to a request for dynamic program execution capacity modification of a computing node group is a dynamic user-specified instruction received and a pre-defined that is automatically determined to be satisfied. Triggered, as well as, in some embodiments, operations automatically performed by a PES or other system may be tracked (eg, the compute node is frozen or otherwise desired) If it is determined that it will automatically shut down or otherwise terminate the use of a compute node as part of its current compute node group, etc. Based on the monitoring performed). Similarly, actual changes in the program execution capacity of a group of computing nodes, such as events that occur and / or changes that correspond to other capacity changes, may be tracked as well (e.g., a failure occurs or is not. An instance of a compute node that would otherwise be unavailable). As an example, information about various events may be stored in a first database table, and various information about capacity changes or other availability changes may be stored in a second database table. There is. If a relationship between a specific event and a specific availability change is identified (eg, a specific event causes a specific availability change to take effect immediately), that event and the availability Corresponding bindings between changes may be tracked by storing identifiers for the same binding along with other information about the event and its availability changes. In other situations where multiple events are individually or combined to produce a particular availability change, but the causal relationship cannot be concluded into a single event, the identifier for a single bond is its availability For gender changes and each of those events, and for one or more other availability changes if they may be concluded individually or in combination to those same multiple events as well It may be stored with other information. Thus, for example, if multiple events for a given group of computing nodes occur during a single aggregate period and one or more program execution capacity changes occur during or immediately after that same aggregate period ( Multiple events (for example, as part of a harmonization activity performed at the end of the grand total period) and none of those events can be directly attributed to any of one or more capacity changes. All combinations may be concluded for each of the one or more capacity changes. Details regarding such attribution of causality are shown below, including the description for FIG. 2B.
加えて、同様な様式において、複数のそのような所望の属性、実際の属性、および公式の属性は、第1のセットの総計平均CPUサイクル利用の所望の量、実際の量、および公式の量、第2のセットの総計平均ネットワーク帯域幅利用の所望の量、実際の量、および公式の量等、コンピューティングノード群のプログラム実行容量に対応する1つ以上の他の制御可能なパラメータのために追跡され、使用される場合がある。さらに、コンピューティングノード群のプログラム実行容量に対応する複数のパラメータが同時に追跡され、使用される時、PESまたは他のシステムは、所望の総計平均CPUサイクル利用および所望の総計平均ネットワーク帯域幅利用を同時に達成するために、コンピューティングノード群を修正する等、パラメータの全てを管理しようとする場合がある。別の例として、コンピューティングノード群の複数のパラメータは、コンピューティングノードの数および群の多様なコンピューティングノードの指定された地理的場所(例えば、第1のデータセンタに群のコンピューティングノードの15〜20パーセント、および1つ以上の他のデータセンタに残りの群のコンピューティングノード)の両方を含む場合があり、PESまたは他のシステムは、群のコンピューティングノード数およびコンピューティングノードの地理的場所の両方を同時に管理しようとする。1つ以上のプログラム実行容量パラメータを追跡し、管理するために複数の属性を使用することに関する追加の詳細を以下に示す。 In addition, in a similar fashion, a plurality of such desired attributes, actual attributes, and formula attributes are the desired, actual, and formula quantities of the first set of aggregate average CPU cycle utilization. For one or more other controllable parameters corresponding to the program execution capacity of the computing nodes, such as desired amount, actual amount, and official amount of aggregate average network bandwidth utilization of the second set May be tracked and used. In addition, when multiple parameters corresponding to the program execution capacity of the compute nodes are simultaneously tracked and used, the PES or other system can provide the desired aggregate average CPU cycle utilization and the desired aggregate average network bandwidth utilization. In order to achieve at the same time, it may try to manage all of the parameters, such as modifying the computing nodes. As another example, the plurality of parameters of the computing node group may include the number of computing nodes and the specified geographical location of the diverse computing node of the group (eg, the group of computing nodes in the first data center). 15-20 percent, and the remaining group of computing nodes in one or more other data centers), and the PES or other system determines the number of computing nodes in the group and the geography of the computing nodes. Try to manage both locations simultaneously. Additional details regarding the use of multiple attributes to track and manage one or more program execution capacity parameters are provided below.
加えて、PESまたは他のシステムは、多様な実施形態において、多様な様式でコンピューティングノードへのアクセスをユーザに提供することができる。例えば、いくつかの実施形態において、プログラムを実行するためにPESから利用可能なコンピューティングノードのうちの少なくともいくつかは、ユーザの各々が他のユーザよりも優先的アクセスを有してコンピューティングノードを使用するように、1人以上のユーザに対して、それらのユーザによる優先使用のために割り当てられる場合がある。1つのそのような実施形態において、ユーザの優先的アクセスは、リースに類似の様式等、指定された期間、それらのコンピューティングノードを使用するために専用または排他的アクセスを有するユーザの各々に基づく場合がある。加えて、いくつかの実施形態において、専用または他の優先的使用のために1人以上のユーザに割り当てられるコンピューティングノードのうちの少なくともいくつかは、コンピューティングノードが割り当てられているユーザによって、コンピューティングノードが使用中でない時、および/またはコンピューティングノードが割り当てられているユーザが割り当てられたコンピューティングノードを他のユーザによって使用するために明示的に利用可能にする時等、場合によっては他のユーザのために余分のプログラム実行容量として使用される場合がある。この様式において、第1の群のユーザに割り当てられている少なくともいくつかのプログラム実行容量は、非保証ベース等で(例えば、1人以上の他のユーザによる優先または予約使用等、そのプログラム実行容量が他の目的のために望ましい場合は、余分のプログラム実行容量へのアクセスは無効になる場合がある)、時によっては、他のユーザの代わりに一時的にプログラムを実行するために利用可能になる場合がある。さらに、いくつかの実施形態において、PESは、リクエストされた実行を満たすに充分なコンピューティングノードが、そのようなリクエストが満たされるという保証はないが、リクエストされた時間に(または近辺で)利用可能であれば、そのようなリクエストによって指示された1つ以上のプログラムが実行される場合があるように、(例えば、それらのユーザのリクエスト時に即時に、指示された将来の時間に、指示された将来の期間中のある時間に等)プログラムを実行するという動的に受信されたユーザのリクエストを満たすために利用可能なオンデマンドのコンピューティングノードを含む場合がある。加えて、いくつかの実施形態において、即時(または予定の)実行に対するそのようなオンデマンドリクエストが満たされ、それぞれのユーザの代わりに1つ以上のプログラムの実行を成功裏に開始した後、オンデマンドのコンピューティングノードの進行中の使用は、それぞれのユーザの選択する時間等、ある将来の時点まで継続することが保証され、任意選択的に所定の制限の対象となる(例えば、PESは、他の目的のための使用を先取りしないことは保証されるが、プログラムを実行しているコンピューティングノードの障害に対して保証されない等)。いくつかの実施形態において、オンデマンドの変動可能なプログラム実行容量を提供するために使用されるコンピューティングノードは、専用プログラム実行容量を提供するために使用されるコンピューティングノードとは、および/または余分のプログラム実行容量を提供するために使用されるコンピューティングノードとは区別される場合があり、このため、オンデマンドの変動可能なプログラム実行容量を提供するために使用されるコンピューティングノードのうちのいくつかが使用中でない場合、いくつかの実施形態において、それらは、オンデマンドの変動可能なプログラム実行容量リクエストが受信されるまで、余分のプログラム実行容量を提供するために使用される場合があり、一方で、他の実施形態において、それらは、余分のプログラム実行容量を提供するためには使用されない場合がある。他の実施形態において、単一の種類のプログラム実行容量だけが提供される場合があり、および/または他の種類のプログラム実行容量が提供される場合がある。 In addition, the PES or other system can provide users with access to the computing node in various manners in various embodiments. For example, in some embodiments, at least some of the computing nodes available from the PES to execute a program are such that each of the users has preferential access over other users. May be assigned to one or more users for preferential use by those users. In one such embodiment, the user's preferred access is based on each of the users having dedicated or exclusive access to use their computing nodes for a specified period of time, such as in a manner similar to a lease. There is a case. In addition, in some embodiments, at least some of the computing nodes assigned to one or more users for dedicated or other preferential use are determined by the user to which the computing node is assigned, In some cases, such as when a computing node is not in use and / or when a user to whom a computing node is assigned explicitly makes the assigned computing node available for use by other users It may be used as extra program execution capacity for other users. In this manner, at least some program execution capacity assigned to the first group of users is on a non-guaranteed basis, etc. (eg, priority or reserved use by one or more other users, such as program execution capacity). If this is desirable for other purposes, access to extra program execution capacity may be disabled), sometimes available to temporarily run programs on behalf of other users There is a case. Further, in some embodiments, a PES is available at (or near) the requested time that there are not enough computing nodes to satisfy the requested execution, although there is no guarantee that such a request will be satisfied. If possible, one or more programs indicated by such a request may be executed (eg, immediately at the time of those users' requests, indicated at a future time indicated) It may include an on-demand computing node that can be used to satisfy a dynamically received user request to execute a program (such as at some time during a future period). In addition, in some embodiments, such an on-demand request for immediate (or scheduled) execution is satisfied, and after successfully starting execution of one or more programs on behalf of the respective user, The ongoing use of demand computing nodes is guaranteed to continue to some future point in time, such as the time selected by each user, and is optionally subject to certain restrictions (eg, PES It is guaranteed not to preempt its use for other purposes, but it is not guaranteed against the failure of the computing node running the program). In some embodiments, a computing node used to provide on-demand variable program execution capacity is a computing node used to provide dedicated program execution capacity and / or It may be distinguished from computing nodes used to provide extra program execution capacity, and therefore, of the computing nodes used to provide on-demand variable program execution capacity If some of these are not in use, in some embodiments they may be used to provide extra program execution capacity until an on-demand variable program execution capacity request is received. While in other embodiments they are In order to provide a program execution capacity it may not be used. In other embodiments, only a single type of program execution capacity may be provided and / or other types of program execution capacity may be provided.
図1Aは、複数のユーザのためにプログラムを実行するプログラム実行容量を提供する際に使用するために利用可能なコンピューティングノードを管理する、プログラム実行サービスの例を例示するネットワーク図である。図示の目的のために、特定の種類のプログラム実行容量が特定の様式で提供され、管理される、いくつかの例および実施形態を以下に記載する。加えて、後述する例および実施形態のうちのいくつかにおいては、コンピューティングノードの群によって提供されるプログラム実行容量は、特定の様式で測定される場合(例えば、コンピューティングノードの数に基づいて)、特定の様式で管理される場合(例えば、1つ以上のプログラム実行容量メトリックに関して、所望の属性、実際の属性、および公式の属性の使用を追跡することによって)、多様な様式で関連のユーザによって制御される場合(例えば、予め定義されたトリガおよび/または動的に指定される命令の使用に基づいて)、特定の様式で修正される場合(例えば、期間中に判定され、延期される少なくともいくつかのプログラム実行容量修正を総計し、次いで、群の中のコンピューティングノードの数を修正する等、期間の最後に1つ以上の対応する総計された修正を実施することによって)等がある。これらの例は、例示の目的で提供され、簡潔性のために簡素化されており、本発明の技法は、広範の多様な他の状況において使用される場合があり、以下にはそのうちのいくつかだけを記載することが理解される。 FIG. 1A is a network diagram illustrating an example of a program execution service that manages available computing nodes for use in providing program execution capacity for executing programs for multiple users. For purposes of illustration, some examples and embodiments are described below in which a particular type of program execution capacity is provided and managed in a particular fashion. In addition, in some of the examples and embodiments described below, the program execution capacity provided by a group of computing nodes is measured in a particular manner (eg, based on the number of computing nodes). ) When managed in a particular manner (eg, by tracking usage of desired, actual, and official attributes with respect to one or more program execution capacity metrics) When controlled by the user (eg, based on the use of predefined triggers and / or dynamically specified instructions), modified in a particular manner (eg, determined and postponed during the period) Totaling at least some program execution capacity modifications, then modifying the number of computing nodes in the group, etc. Finally one or more by carrying out the corresponding aggregate has been modified), and the like between. These examples are provided for illustrative purposes and have been simplified for the sake of brevity, and the techniques of the present invention may be used in a wide variety of other situations, some of which are listed below. It is understood that only is described.
図1Aの例において、多様なユーザ(図示せず)は、ネットワーク100上から、プログラム実行サービスプロバイダエンティティ105によって提供されるPESと相互作用するために、多様なクライアントコンピューティングシステム130を使用しており、PESの機能のうちのいくつかは、この例において、プログラム実行サービスシステムマネージャ(以下、「PESSM」)モジュール110の例示の実施形態によって提供され、他の機能は、この例において、プログラム実行サービス容量保守マネージャ(以下、「PESCMM」)モジュール115の例示の実施形態によって提供される。PESSMモジュール110は、例えば、群のために初期の所望のコンピューティングノード数を指定すること、およびコンピューティングノード数に対して後で自動的に動的修正を行う際に使用するためのトリガを指定することを含めて、ユーザのためにプログラムを実行するために使用されるコンピューティングノードの群を構成する際に特定のユーザを支援する場合がある。この例において、PESは、ユーザのプログラムを実行するために、多様なコンピューティングノード120を利用可能にするが、他の実施形態において、群のうちの少なくともいくつかのために使用されるコンピューティングノードのうちの少なくともいくつかは、他の様式で提供される場合がある(例えば、ユーザ、および/または外部コンピューティングシステム140等の第三者によって利用可能にされるが、PESによって管理される)。加えて、PESCMMモジュール115は、使用中のコンピューティングノードを継続的にまたは反復して監視すること、および任意選択的に、プログラム実行容量を以前に判定されたレベルで維持するように、障害を発生またはそうでなければ利用不可能になる任意のコンピューティングノードを置換するようにすることを支援する場合がある。
In the example of FIG. 1A, various users (not shown) use various
ネットワーク100は、例えば、連結されたネットワークのうちの公的にアクセス可能なネットワークの場合があり、可能性として、インターネット等の多様な別個の当事者によって運用される場合がある。他の実施形態において、ネットワーク100は、例えば、非特権ユーザには全体的または部分的にアクセス不可能な企業または大学のネットワーク等、非公開ネットワークの場合がある。さらに他の実施形態において、ネットワーク100は、インターネットへのアクセス、および/またはインターネットからのアクセスを有する1つ以上の非公開ネットワークを含む場合がある。図示された実施形態において、PESSMモジュール110およびPESCMMモジュール115は各々、1つ以上のコンピューティングシステム(図示せず)上で実行するソフトウェア命令を含む場合がある。加えて、モジュール110および115ならびに多様なコンピューティングノード120は、単一のデータセンタで、またはそうでなければ、共存するコンピューティングシステムを使用する等、あるいはその代わりに、多様な別個の地理的場所において多様なコンピューティングシステムを使用する分散様式等、多様な様式で提供される場合がある。
The
いくつかの実施形態において、例示されたコンピューティングノード120は、複数の物理的コンピューティングシステムおよび/または1つ以上の物理的コンピューティングシステム上でホストされる複数の仮想マシン(図1Bを参照して詳細に記載する)を含む場合がある。コンピューティングノード120の各々は、例えば、処理容量(例えば、処理ユニットの数および/またはサイズ)、メモリ容量、記憶容量、ネットワーク帯域幅容量等のうちの1つ以上の組み合わせによって測定される場合があるような、特定量のプログラム実行容量を提供する等、1つ以上のプログラムを実行するために利用可能な何らかの量のコンピューティングリソースを有する。いくつかの実施形態において、PESプロバイダ105は、予め構成されたコンピューティングノードを提供する場合があり、各々の予め構成されたコンピューティングノードは、ユーザの代わりにプログラムを実行するために利用可能なリソースの量と同等、そうでなければ同様な量を有し、一方で、他の実施形態において、PESプロバイダ105は、各選択肢が変動する量および/または種類(例えば、処理ユニットのサイズ、速度および/または種類、処理ユニットの数、メモリおよび/または記憶の量、32ビットまたは64ビット等のプラットフォームの構成等)のコンピューティングリソースを有する等、ユーザの代わりにプログラムを実行するためにユーザが選択する場合がある多様な異なるコンピューティングノードの選択肢を提供する場合がある。
In some embodiments, the illustrated
この例示された実施形態において、プログラム実行サービスは、複数のユーザの各々のために、1つ以上のコンピューティングノード120の群を管理するための機能を提供する。他の部分に詳細を記載するように、多様なユーザは、ユーザの代わりにプログラムを実行するためのコンピューティングノードの群の使用を開始するというリクエストを指定するために、PESSMモジュール110と相互作用する場合がある。多様な実施形態において、そのようなリソースは、ユーザの代わりにコンピューティングノードの群上で1つ以上のプログラムを実行するリクストの時、および/またはユーザがPESのサービスを使用するために最初に登録および/または加入する時等、1つ以上の他の時間に指定される場合がある。いくつかの実施形態において、PESSMモジュール110は、ユーザがユーザの代わりに実行する1つ以上のプログラムに関する情報(例えば、プログラム、ソースコード、1つ以上のプログラムのアドレス指定可能な場所等)、アカウント情報(例えば、ユーザ名、請求情報等)、使用条件等を指定することができるように、1人以上のユーザに加入および/または登録サービスを提供する場合がある。いくつかの実施形態において、ユーザがPESSMモジュール110と相互作用してサービスに加入および/または登録した後、ユーザには、ユーザに関連する1つ以上の識別子(例えば、キー、トークン、ユーザ名等)が発行される場合があり、ユーザの代わりにプログラムを実行する際に関連して使用される。他の実施形態において、PESSMモジュール110以外のモジュール(図示せず)は、PESの加入および/または登録サービスに関する多様な操作を実施するために提供される場合がある。
In the illustrated embodiment, the program execution service provides functionality for managing a group of one or
1つ以上のコンピューティングノードを使用するためにユーザからリクエストが受信された後、PESSM1モジュール10は、リクエストを満たすために利用可能なリソースを備える充分な数のコンピューティングノード120が存在するかどうかを判定する場合があり、存在する場合、PESSM1モジュール10は、ユーザの代わりに適当な量のコンピューティングノード上でリクエストに対する1つ以上のプログラムの実行を開始する場合がある。ユーザが1つ以上のコンピューティングノードの群上で1つ以上のプログラムをさらに実行するリクエストを予定している場合、PESSMモジュール110は、1つ以上の将来の時間に1つ以上のプログラムを実行するための適切な量のコンピューティングノードを即時に予約しようとする場合、および/または後の時間まで(例えば、1つ以上の将来の時間が発生する時)、実行のためにどのコンピューティングノードを使用するかの判定を遅延する場合がある。例示される実施形態において、PESSMモジュール110が、ユーザリクエストのためにコンピューティングノードを割り当てることが不可能な場合、リクエストは、プログラムが実行されない等、失敗する場合がある。そのような場合、ユーザは、後で実行するために、失敗したリクエストを再送信する場合がある。前述のように、いくつかの実施形態において、ユーザは、使用されるコンピューティングノードの数、使用されるコンピューティングノードの種類、コンピューティングノードが使用される期間、コンピューティングノードが実施する特定の操作(例えば、データ転送および/または記憶)等に基づいて等、PESの使用に関連して多様な料金が課金される場合がある。
After a request is received from a user to use one or more computing nodes, the
1つ以上のコンピューティングノードの群がユーザの代わりに1つ以上のプログラムを実行する際に使用するために提供された後、コンピューティングノード群は、多様な様式で管理される場合がある。例えば、前述のように、PESCMMモジュール115は、群のコンピューティングノードによって提供されている実際のコンピューティングノード数または実際のプログラム実行容量の他の測定値を含めて、コンピューティングノードのいくつかまたは全ての性能特性を判定するため等、群のコンピューティングノードを監視する場合がある。群の実際のプログラム実行容量は、例えば、コンピューティングノードの1つ以上が障害を発生またはそうでなければ利用不可能になると変化する場合があり、少なくともいくつかの実施形態において、モジュール115は、そのような状況においてコンピューティングノード群のプログラム実行容量を維持するために多様な操作を実施する場合がある(例えば、利用不可能なコンピューティングノードの代わりに、群に置換コンピューティングノードの追加を開始することによって)。加えて、モジュール115は、実際のコンピューティングノード数における変更を検出時、定期的等のように、コンピューティングノード群の公式記録のコンピューティングノード数を更新するために、コンピューティングノード群の判定された実際のコンピューティングノード数についての情報を使用する場合がある。 After one or more groups of computing nodes are provided for use in executing one or more programs on behalf of a user, the computing nodes may be managed in a variety of ways. For example, as described above, the PESCMM module 115 may include some of the computing nodes, including the actual number of computing nodes being provided by the group of computing nodes or other measurements of actual program execution capacity. A group of computing nodes may be monitored, such as to determine all performance characteristics. The actual program execution capacity of the group may change, for example, if one or more of the computing nodes fail or otherwise become unavailable, and in at least some embodiments, the module 115 is In such a situation, various operations may be performed to maintain the program execution capacity of the computing node group (eg, adding a replacement computing node to the group instead of an unavailable computing node). By starting). In addition, the module 115 determines the computing node group to update the computing node number in the official record of the computing node group, such as periodically, upon detecting a change in the actual computing node number. Information about the actual number of compute nodes that have been used may be used.
加えて、PESSMモジュール110はまた、多様な様式でコンピューティングノード群を管理する際に支援する場合もある。例えば、前述のように、群に関連するユーザは、多様な指定された条件が満たされた場合に、群に対して行われるコンピューティングノード数の変更の種類を指定する、1つ以上の数修正トリガを以前に指定していた場合がある。その上、少なくともいくつかの実施形態において、群に関連するユーザは、群のコンピューティングノードの数を変更することを含めて、多様な時点で関連するコンピューティングノード群の操作に対する変更を動的に指定する場合がある。コンピューティングノード群を管理することの一部として、モジュール110は、コンピューティングノード群の所望のコンピューティングノード数を追跡し、コンピューティングノード群の公式記録のコンピューティングノード数と、コンピューティングノード群の所望のコンピューティングノード数に定期的を調和する場合がある。そのような定期的調和は、予め定義されたユーザ指定トリガのうちの1つ以上を満たすことから、および/または1つ以上の動的に指定されたユーザ命令から等、総計期間中に発生するコンピューティングノード数へのリクエストされた修正を追跡し、総計することを含む場合がある。期間の最後に、モジュール110は、次いで、総計されたコンピューティングノード数修正を実施するかどうか、どのように実施するかを判定する場合があり、コンピューティングノード数修正の総計に基づいて、所望のコンピューティングノード数を更新する場合がある。モジュール110は次いで、総計されたコンピューティングノード数の修正を開始し、総計されたコンピューティングノード数の修正からもたらされる新しい所望のコンピューティングノード数に一致するように公式記録のコンピューティングノード数を更新することによって、所望コンピューティングノード数および公式記録のコンピューティングノード数の調和を完了する場合がある。さらに、期間の最後に現在の実際のコンピューティングノード数が公式記録のコンピューティングノード数と異なる場合、実際のコンピューティングノード数を考慮して、現在の実際のコンピューティングノード数を現在所望のコンピューティングノードに更新するように総計されたコンピューティングノード数の修正の開始が実施される等、所望のコンピューティングノードおよび公式記録のコンピューティングノードの調和がさらに実施される場合がある。モジュール110は、指定の期間が経過する都度、最低量のコンピューティングノード数の変更がリクエストされる都度等、反復してそのような定期的調和アクティビティをさらに実施する場合がある。
In addition, the
さらに、PESSMモジュール110は、特定のコンピューティングノード群に関して発生するイベントおよび特定のプログラム実行容量変更を追跡するために他のアクティビティを実施する場合がある。プログラム実行容量変更情報のうちの少なくともいくつかは、定期的または再帰的調和アクティビティの一部として、モジュール110によって開始される動的なプログラム実行容量修正に対応する場合があり、任意選択的にいくつかの状況において、PESCMMモジュール115によって実施される監視からのプログラム実行容量変更情報(例えば、障害を発生またはそうでなければ利用不可能になるコンピューティングノード、またはコンピューティングノード群のプログラム実行容量における他の種類の検出された変更に対応する)をさらに含む場合がある。モジュール110は、実施される定期的または他の再帰調和アクティビティに一致して、または代わりに他の時間に等、特定の容量変更に対する因果関係または他の責任を特定のイベントに結論付けるために、多様な時点で自動判定をさらに行う場合がある。
In addition, the
図1Aの前述の例示的な実施形態は、多様なユーザのために多様な種類の機能を提供するPESに関して記載されるが、多様な他の実施形態が存在する場合があることが理解される。例えば、少なくともいくつかの実施形態において、コンピューティングノード120のうちの単一の未使用部分(例えば、未使用の処理ユニットクロックサイクル、メモリの未使用部分等)は、第1のユーザの1つ以上のプログラムが、1人以上の他のユーザのプログラムと単一のコンピューティングノードのリソースを共有している場合がある等、1人以上のユーザによって使用するために利用可能になる場合がある。加えて、いくつかの実施形態は、プログラム実行サービスおよびプログラム実行容量に関して記載されるが、記載の技法は、多様な他の群のコンピューティングノードまたは他の種類のコンピューティング関連リソースに対するアクセスを管理するために使用される場合があることが理解される。複数のユーザによって使用されるために管理される場合がある他の種類のコンピューティング関連リソースの例の非排他的リストとして、持続的データ記憶機能(例えば、ハードディスクドライブ等の不揮発性記憶装置)、一時的データ記憶機能(例えば、RAM等の揮発性メモリ)、メッセージ待ち行列および/または渡し機能、他の種類の通信機能(例えば、ネットワークソケット、仮想通信回路等)、データベース管理機能、専用帯域幅または他のネットワーク関連リソース、入力装置機能、出力装置機能、CPUサイクルまたは他の命令実行機能等が挙げられる場合がある。 While the foregoing exemplary embodiment of FIG. 1A is described with respect to a PES that provides various types of functionality for a variety of users, it is understood that a variety of other embodiments may exist. . For example, in at least some embodiments, a single unused portion of computing node 120 (eg, unused processing unit clock cycle, unused portion of memory, etc.) is one of the first users. The above programs may be made available for use by one or more users, such as sharing a single computing node resource with one or more other users' programs. . In addition, although some embodiments are described in terms of program execution services and program execution capacity, the described techniques manage access to various other groups of computing nodes or other types of computing-related resources. It is understood that it may be used to A non-exclusive list of examples of other types of computing-related resources that may be managed for use by multiple users, such as persistent data storage capabilities (eg, non-volatile storage devices such as hard disk drives), Temporary data storage function (eg volatile memory such as RAM), message queuing and / or passing function, other types of communication functions (eg network socket, virtual communication circuit, etc.), database management function, dedicated bandwidth Or other network related resources, input device functions, output device functions, CPU cycles or other instruction execution functions may be mentioned.
図1Bは、複数の物理的コンピューティングシステムを含む1つ以上のデータセンタを使用するプログラム実行サービスが提供される場合がある実施形態を例示する。具体的には、図1Bは、プログラム実行サービスのPESSMモジュール180およびPESCMMモジュール160が、1つ以上のデータセンタにある多様なコンピューティングシステムを使用して、ユーザの代わりに1つ以上のプログラムの実行を管理する、例示的な実施形態を例示するネットワーク図である。例示された例は、PESによって使用されるデータセンタ170を含み、これは、データセンタ170に対して外部のインターネット196に接続される。この例において、インターネット196は、非公開ネットワーク194を介するコンピューティングシステム190、および直接アクセス可能なコンピューティングシステム192等、多様な外部のコンピューティングシステムへのアクセスを提供する。非公開ネットワーク194は、例えば、非公開ネットワーク194に対して外部の非特権コンピューティングシステムから全面的または部分的にアクセス不可能な企業ネットワークの場合がある。コンピューティングシステム192は、例えば、(例えば、電話またはケーブルモデム、デジタル加入者回線(以下「DSL」)等を介して)インターネットに直接接続する家庭用コンピューティングシステムを含む場合がある。加えて、少なくともいくつかの実施形態においてPESによってさらに使用される場合があるように、インターネット196を介してデータセンタ170に接続される、1つ以上の他のデータセンタ198が例示される。
FIG. 1B illustrates an embodiment in which a program execution service may be provided that uses one or more data centers that include multiple physical computing systems. Specifically, FIG. 1B shows that the
例示的なデータセンタ170は、いくつかの物理的なホストコンピューティングシステム175、物理的なコンピューティングシステム182、PESのPESSMモジュール180、およびPESのPESCMMモジュール160を含む。この例において、ホストコンピューティングシステム175は各々、複数の仮想マシン177aおよびVMマネージャ構成要素179aを備えるホストコンピューティングシステム175aに関して例示されるように、複数の仮想マシンを提供し、それらの仮想マシン(例えば、ハイパーバイザまたは他の仮想マシンモニタ)を管理するための仮想マシン(以下「VM」)マネージャ構成要素を有する。他のホストコンピューティングシステム175bは、そのような構成要素を同様に含む場合があるが、それらの他の構成要素は簡潔性のために例示されず、コンピューティングシステム182のいくつかまたは全ては、任意選択的に、1つ以上のそのような仮想マシンおよび/またはVMマネージャ構成要素(図示せず)を同様に有する場合がある。ホストコンピューティングシステムによって提供される仮想マシンの各々は、ホストコンピューティングシステム上の第1の仮想マシンコンピューティングノードを第1のユーザのための第1のコンピューティングノード群の一部にし、その同じホストコンピューティングシステム上の第2の仮想マシンコンピューティングノードを第2のユーザのための第2のコンピューティングノード群の一部にする等、PESのための別個のコンピューティングノードとして使用される場合がある。代替として、他の実施形態において、データセンタにある物理的ホストコンピューティングシステムのいくつかまたは全ては、そうではなく、PESのエンドユーザ顧客の代わりに1つ以上のプログラムを実行するコンピューティングノードとして直接機能する等、仮想マシンを一切提供しない場合がある。さらに、いくつかの実施形態において、多様なコンピューティングシステム175および182は、異なる機能を有する場合、異なる使用関連料金を有する場合、異なる種類のユーザプログラム(例えば、異なるサイズの仮想マシンソフトウェアの画像インスタンス、または異なるパターンのI/Oおよびメモリのアクセスならびにネットワーク使用量等の、異なる種類のリソース条件および/またはコンピューティングリソース使用量を有するプログラム)をサポートする場合等がある。そうである場合、特定のユーザおよび/またはそれらのプログラムは、1つ以上のそのような因子に従って(例えば自動的に)グループ化される場合があり、特定のプログラムを実行するためにどのコンピューティングシステムを選択するかに関して、制約条件および/または優先条件としてさらに使用される場合がある。例示的データセンタ170はさらに、スイッチ、エッジルータ、コアルータ等の複数のネットワーキングデバイス(図示せず)を含む場合がある内部ネットワーク172を含み、コンピューティングシステム175および182、PESCMMモジュール160、ならびにPESSMモジュール180は、内部ネットワーク172に接続される。多様なホストコンピューティングシステム175および他のコンピューティングシステム182は、共通のバックプレーンまたは他の相互接続媒体を共有するラックの中にグループ化されることを含む、多様な様式で配置される場合がある。さらに、モジュール160および180の各々は、1つ以上のコンピューティングシステム(図示せず)を使用して実行される場合がある。
The
例示されるPESSMモジュール180およびPESCMMモジュール160は、他の部分に詳細を記載するように、コンピューティングシステム175および182を使用して提供されるコンピューティングノードの群上でのプログラムの実行を管理するために、記載の技法の少なくともいくつかを実施する。特定のコンピューティングノードがユーザの1つ以上のプログラムを実行するために選択される時、PESSMモジュールは、いくつかの実施形態において、その選択されたコンピューティングノードに対してプログラムの実行を制御する、VMマネージャ構成要素または他のマネージャ構成要素と相互作用することによって、それらのプログラムの実行を開始する場合、または代替として、選択されたコンピューティングノード上でプログラムを直接実行する場合がある。PESのユーザは、PESSMモジュール180と相互作用するために、コンピューティングシステム190または192、あるいは他のデータセンタ198のうちの1つにあるコンピューティングシステム等、多様なコンピューティングシステムを使用する場合がある。
図1Bのデータセンタは、例示の目的のみに提供され、プログラム実行サービスまたは他のソフトウェア実行サービスは、他の実施形態において他の様式で提供される場合があることが理解される。例えば、PESSMモジュール180および/またはPESCMMモジュール160は、その代わりに、コンピューティングシステム190、192またはデータセンタ198で等、データセンタ170に対して外部にある1つ以上の他のコンピューティングシステムを使用して提供される場合がある。
It will be appreciated that the data center of FIG. 1B is provided for illustrative purposes only, and program execution services or other software execution services may be provided in other manners in other embodiments. For example, the
図2Aは、PESSMモジュールおよび/またはPESCMMモジュールの実施形態によって自動的に実施される場合がある技法等、例示的なユーザの1つ以上のプログラムを実行するために提供される、コンピューティングノードの例示的群を管理するための技法の例を例示する。具体的には、この例において、特定のユーザ(以下ユーザUUUと称す、図2Aには図示せず)は、実行中プログラムによって提供されるサービスによって受信されたリクエストを処理するために、代替のコンピューティングノードとして機能する等(例えば、群の複数のコンピューティングノード全体でサービスのコンピューティング負荷をバランスするために)、ユーザの代わりに指示されたプログラムのコピーを各々実行する複数のコンピューティングノードの群の使用を開始していた。時系列グラフ210に例示されるように、ユーザは、時間T1に、コンピューティングノード群が提供されることをリクエストしており、群の初期の所望のコンピューティングノード数215aを8つのコンピューティングノードに指定している。情報250は、初期のリクエスト時等、ユーザがコンピューティングノード群に指定していた多様なユーザ定義のトリガを示す。加えて、時系列グラフ205は、コンピューティングノード群のために追跡され、トリガ250が満たされるかどうかを判定するために使用される2つの例示的な種類の性能特性についての情報を例示し、これは、この例においては、コンピューティングノード群の総計平均CPU利用205aおよびコンピューティングノード群の総計平均ネットワーク帯域幅利用205bを含む。
FIG. 2A illustrates a computing node provided to execute one or more programs of an exemplary user, such as a technique that may be automatically implemented by an embodiment of a PESSM module and / or a PESCMM module. 1 illustrates an example technique for managing an exemplary group. Specifically, in this example, a particular user (hereinafter referred to as user UUU, not shown in FIG. 2A) may use an alternative to process a request received by a service provided by the running program. A plurality of computing nodes each acting as a copy of a designated program on behalf of a user, such as acting as a computing node (eg, to balance the computing load of a service across a group of computing nodes) Was starting to use the group. As illustrated in the
コンピューティングノード群の提供を開始するという受信されたユーザリクエストに対応する、時間T1でのイベントE1に応じて、例示的PES(図示せず)は、初期の所望のコンピューティングノード数に従って、初期に8つのコンピューティングノードを含む、ユーザのためのコンピューティングノード群を開始する。加えて、コンピューティングノード群の公式記録のコンピューティングノード数225は、同様に、8つのコンピューティングノードに設定される。しかしながら、時系列グラフ210に示されるように、コンピューティングノードの各々上でPESまたはユーザによってプログラムコピーを実行させることを含め、コンピューティングノード群の一部として使用するためにコンピューティングノードをプロビジョンし、利用可能にするためには多少の時間がかかるので、8つのコンピューティングノードは実際には即時に利用可能ではない。具体的には、時間T1後に初期時間が経過した後、コンピューティングノード群のプログラム実行容量における変更C1 255が発生し、これは、時間T1で開始させられた後、およそ時間T2で完了し、8つのコンピューティングノードのうちの最初の4つが利用可能になることに対応する。したがって、コンピューティングノード群に追跡される実際のコンピューティングノード数220は、その時に0から4に増加する。加えて、同時にまたはその直後に、時系列グラフ205は、総計平均CPU利用205aおよび総計平均ネットワーク帯域幅利用205bの性能特性は、群の利用可能なコンピューティングノードの操作に基づいて追跡されることが開始することを示す。
In response to an event E1 at time T1, corresponding to a received user request to start providing a set of computing nodes, an exemplary PES (not shown) is initialized according to an initial desired number of computing nodes. Start a group of computing nodes for the user, including eight computing nodes. In addition, the computing node number 225 of the official record of the computing node group is similarly set to 8 computing nodes. However, as shown in the
この例において、PES(または他の第三者システム)は、性能特性205aおよび205bならびに実際のコンピューティングノード数220情報が最新様式に維持されるように、実質的に継続様式で群のコンピューティングノードの監視を実施する。しかしながら、この例において、コンピューティングノード群のコンピューティングノード数に対する少なくともいくつかの種類の動的修正は、総計期間260中に少なくともいくつかの種類のリクエストされた修正を総計し、それぞれ所望のコンピューティングノード数、実際のコンピューティングノード数、および公式記録のコンピューティングノード数215、220および225間で、総計期間の最後に調和アクティビティを実施する等、定期的にのみ実施される。したがって、第1の総計期間260a中、コンピューティングノード群のコンピューティングノード数に追加の変更255が発生する。例えば、最初の4つのコンピューティングノードを利用可能にする変更C1の後、およそ時間T3に完了される次の変更C2は、コンピューティングノード群の一部として使用するために利用可能になる3つの追加のコンピューティングノードに対応する。
In this example, the PES (or other third-party system) can perform group computing in a substantially continuous manner so that
しかしながら、この例において、初期にリクエストされた第8のコンピューティングノードは、初期に選択されたコンピューティングノードに伴うハードウェア障害に起因して等、適時に利用可能にならない(または、代わりに他の状況において、コンピューティングノード群で使用されるために時間T1では7つのコンピューティングノードだけが利用可能であることに起因して、第8のコンピューティングノードは、後で利用可能になると直ちに動的に追加される)。したがって、イベントE2 265は、およそ時間T4で、変更C2の後直ちに発生することが示され、PESは、必要に応じて(例えば、中間状態においてフリーズした場合)本来の第8のコンピューティングノードを終了し、置換の第8のコンピューティングノードの提供を開始する。図2Bに関して詳細を記載するように、この例において、PESは、初期の第8のコンピューティングノードを追加することに対応する、変更C10aを時間T1に開始しているが、その変更C10aは、追加され、利用可能になる実際の第8のコンピューティングノードの完了に失敗し、そのために、変更C10aは、時系列グラフ210の実際のコンピューティングノード数220に反映されず、図2Aにも示されない。そうではなく、この例において、イベントE2は、同時またはほぼ同時に発生する、2つの別個のイベントE2aおよびE2b(それぞれ図示せず)に分割される。具体的には、PESは、この例において、(例えば、指定期限内に)正しく開始することに失敗している第8のコンピューティングノードに対応する、イベントE2aを時間T4に記録し、PESは、正しく開始することに失敗した初期の第8のコンピューティングノードを終了するように、時間T4で変更C10b(図示せず)を自動的に開始する。さらに、この例において、イベントE2aの結果として発生する、初期の第8のコンピューティングノードの実際の終了は、それ自体、置換の第8のコンピューティングノードの即時提供を自動的に開始する、別のイベントE2bとして時間T4で処理される。そのような一連のイベントおよび対応する変更の結果は、第1のイベントの変更からの結果がそれ自体、別の変更を生じさせる第2のイベントとして処理される場合があるように、他の部分に詳細を記載するように、イベントと対応する変更結果との間の相互関係を追跡する際に多様な利益を提供する場合がある。その後、イベントE2bに基づいて時間T4に開始し、時間T5に完了する、変更C3 255は、置換の第8のコンピューティングノードがコンピューティングノード群の一部として使用するために利用可能になるので、実際のコンピューティングノード数を7から8にもたらす。
However, in this example, the initially requested eighth computing node will not be available in a timely manner, such as due to a hardware failure with the initially selected computing node (or alternatively In this situation, due to the fact that only 7 computing nodes are available at time T1 for use by the computing nodes, the 8th computing node will be activated as soon as it becomes available later. To be added). Thus,
コンピューティングノード群の第8のコンピューティングノードが総計期間260aの部分で意図した様式で操作した後、コンピューティングノードのうちの1つが失敗している、あるいは利用不可能になっていることによって促されて、実際のコンピューティングノード数220における別の変更C4 255は、およそ時間T7で発生する。対応するイベントE3 265は、変更C4とほぼ同時に発生し、その中で、PESは、必要に応じて利用不可能なコンピューティングノードを終了し、任意選択的に、置換コンピューティングノードの提供を自動的に開始する。具体的には、イベントE2に関して上述した様式と同様な様式で、イベントE3は、この例において、同時またはほぼ同時に発生する、イベントE3aおよびE3b(独立して図示せず)に分割される。このように、PESは、この例において、利用不可能になったことが検出されているコンピューティングノードに対応するイベントE3aを時間T7に記録し、PESは、変更C4を直接発生させる等、利用不可能なコンピューティングノードを終了するためのアクティビティを時間T7で自動的に開始する。さらに、この例において、イベントE3aの結果として発生する、利用不可能なコンピューティングノードの終了は、それ自体、およそ時間T7で、置換のコンピューティングノードの即時提供を自動的に開始する別個のイベントE3bとして処理されるが、他の実施形態および状況において、置換コンピューティングノードの任意のそのような提供は、そうではなく、総計期間260aの最後に実施される調和アクティビティH1まで延期される。その後、この例において、イベントE3bによって直接発生させられる、実際のコンピューティングノード数を8に戻す、変更C5 255は、置換コンピューティングノードがコンピューティングノード群の一部として使用するために利用可能になると、およそ時間T9で完了される。この例において、公式記録のコンピューティングノード数225は、変更C4およびC5にも、以前の変更C1〜3にも対応するように一時的に更新されないが、他の実施形態において、公式記録のコンピューティングノード数225は、更新された実際のコンピューティングノード数220と一致する状態に公式記録のコンピューティングノード数225を継続または反復して維持するために、いくつかまたは全てのそのような変更を反映するように更新される場合がある。指定されたトリガ250は全く満たされない、および動的に指定されたユーザ指示は全く受信されないことを含めて、他のコンピューティングノード容量の利用可能性の変更またはイベントは、この例において、総計期間260aの残りの間は全く発生しない。したがって、期間260aの最後の時間T11で、調和アクティビティの第1のセットH1が考慮されるが、それぞれ現在所望のコンピューティングノード、実際のコンピューティングノード、および公式記録のコンピューティングノード215、220、および225は、全て8つのコンピューティングノードに一致するため、アクティビティは全く必要とされない。利用不可能なコンピューティングノードを置換する変更C5が、この例に例示されるように総計期間260a中に実施されなかった場合、そうではなく、(例えば、総計期間260a中にリクエストまたは開始された任意の他の動的な利用可能性の変更に伴って)その時間に利用不可能なコンピューティングノードを置換するために、総計期間後に調和アクティビティH1の一部として開始される。
Prompted by one of the computing nodes failing or unavailable after the eighth computing node in the group of computing nodes has operated in the intended manner during the
しかしながら、第2の総計期間260b中、追加のイベントは確かに発生する。具体的には、イベントE5 265は、時系列グラフ205に平均総計CPU利用205aの線上の最初の黒い楕円で図に例示されるように、トリガTR−1 250aが増加する総計平均CPU利用205aによって満たされたというPESによる自動決定に対応して、およそ時間T16で最初に発生する。トリガTR−1が満たされると、12の合計のリクエストされた所望のコンピューティングノード数215cに対して、所望のコンピューティングノード数215を4つのコンピューティングノードだけ増加するというリクエストを開始する(または代替として、現在所望のコンピューティングノード数に関係なく、更新された所望のコンピューティングノード数が12に設定されるようにリクエストすることができる)。同様に、さらに追加の時間が経過した後、イベントE6 265は、次に、時系列グラフ205に総計平均ネットワーク帯域幅利用205b線上の黒い楕円で図に例示されるように、トリガTR−N250cが増加総計平均ネットワーク帯域幅利用205bによって満たされたという判定に対応して、およそ時間T18に発生する。トリガTR−Nが満たされると、合計10のリクエストされた所望のコンピューティングノード数215dに対して、所望のコンピューティングノード数215を2つのコンピューティングノードだけ増加するというリクエストを開始する(または代替として、現在所望のコンピューティングノード数に関係なく、更新された所望のコンピューティングノード数が10に設定されるようにリクエストすることができる)。短い追加時間が経過した後、イベントE4 265は、およそ時間T19で発生し、その中で、コンピューティングノード群に関連するユーザは、合計で11のリクエストされた所望のコンピューティングノード数215bに対して、所望のコンピューティングノード数215を3つのコンピューティングノードだけ増加するように動的に指定されたリクエストを提供する(または、代替として、現在所望のコンピューティングノード数に関係なく、更新された所望のコンピューティングノード数は11に設定されるようにリクエストすることができる)。このリクエストは、例えば、総計平均CPU利用205aが高い、コンピューティングノード群上の合計のコンピューティング負荷が増加している等というユーザ通知に基づいて行われる場合がある。
However, additional events will certainly occur during the second
最後に、総計期間260bの終了直前に、障害が発生している、またはそうでなければ利用不可能になっている群のコンピューティングノードのうちの1つによって促され、追加の変更C6は、およそ時間T20に発生する。対応するイベントE9は、変更C6とほぼ同時に発生し、その中で、PESは、必要に応じて利用不可能なコンピューティングノードを終了する。この例において、しかしながら、置換コンピューティングノードの提供を即時に開始するのではなく、コンピューティングノード群の中のコンピューティングノードの数は、それらの調和アクティビティに基づいて削減され、置換コンピューティングノードは必要がなくなるため、PESは、近い将来の第2のセットH2の調和アクティビティが時間T21で開始されるまで待機することを判定する(例えば、時間T21までの残りのわずかな量の時間に基づいて、置換コンピューティングノードを提供することのそのような延期は、使用中に利用不可能になる任意のコンピューティングノードのデフォルト動作であることに基づいて等)。他の実施形態において、PESは、そうではなく、置換コンピューティングノードの提供を即時に開始する場合がある(例えば、任意の状況において利用不可能なコンピューティングノードの置換を延期しないことに基づいて、所望のコンピューティングノード数が、調和アクティビティH2の一部として、減少するのではなく増加する可能性が高いことに起因して、この状況において利用不可能なコンピューティングノードの置換を延期しないことに基づいて、ユーザが後の時間T3まで8つのコンピューティングノードに対して既に支払を済ませていること等の他の因子に起因して、この状況において利用不可能なコンピューティングノードの置換を延期しないことに基づいて等)。この例において、イベントE2およびE3に関して上述の様式に同様な様式で、イベントE9は、同時またはほぼ同時に発生する、2つの別個のイベントE9aおよびE9b(別々に図示せず)に分割される。このように、PESは、この例において、利用不可能になったことが検出されているコンピューティングノードに対応するイベントE9aを時間T20で記録し、PESは、変更C6を直接発生させる等、利用不可能なコンピューティングノードを終了するためのアクティビティを時間T20で自動的に開始する。さらに、この例において、イベントE9aの結果として発生する、利用不可能なコンピューティングノードの終了はそれ自体、所望のコンピューティングノード数215を8つのコンピューティングノードの所望の数215aに維持するように等、置換コンピューティングノードとして使用する群の追加のコンピューティングノードのリクエストを開始するための別のイベントE9bとしておよそ時間T20で処理される。この例において、イベントE9bのリクエストは、イベントE4〜E6と同様な様式で処理され、現在の総計期間260bの最後で実施される調和アクティビティH2まで延期されるが、他の実施形態および状況においては、置換コンピューティングノードのそのような提供は、そうではなく、即時に開始される場合がある。加えて、この例において、公式記録のコンピューティングノード数225は、変更C4およびC5に関して前述した様式に同様な様式で、変更C6に対応するようには更新されないが、他の実施形態において、公式記録のコンピューティングノード数225は、そのような変更を反映するように更新される場合がある。
Finally, just before the end of the
したがって、第2の総計期間260bの最後に、調和アクティビティH2が開始され、この場合、コンピューティングノード群への動的修正となる。具体的には、この例のPESは、イベントE4、E5、E6およびE9bに対する多様なリクエストされた所望のコンピューティングノード数215b、215c、215dおよび215aに対応するリクエストされた修正を総計し、先行の所望の8つのコンピューティングノード数215aに動的総計数修正を行うと判定し、この例の動的総計数修正は、更新された現在所望の12のコンピューティングノード数215eに対応するように、4つの追加のコンピューティングノードの増加(リクエストされた数修正の最大をとることに基づいて)である。他の実施形態において、動的総計数修正は、イベントE9bに従い先行の所望のコンピューティングノード数215aを維持するように動的総計数修正を選択するように(例えば、現在の実際のコンピューティングノード数から1つのコンピューティングノードの増加となる)、イベントE4〜E6のリクエストされた数修正の最小をとるように(例えば、現在所望のコンピューティングノード数から2つのコンピューティングノードの増加となる)、イベントE4〜E6のリクエストされた数修正の平均をとるように(例えば、現在所望のコンピューティングノードから3つのコンピューティングノードの増加となる)、イベントE4〜E6のリクエストされた数修正の集積をとる(例えば、現在所望のコンピューティングノード数から9つのコンピューティングノードの増加となる)、イベントE4〜E6のリクエストされた数修正の最高優先度をとる(例えば、例えば、E4のユーザ命令がイベントE5およびE6のトリガを満たすことよりも高い優先度であるとみなされる場合、現在所望のコンピューティングノード数から3つのコンピューティングノードの増加となる)イベントE4〜E6のリクエストされた数修正の第1のリクエストまたは最後のリクエストをとる(例えば、現在所望のコンピューティングノード数から、それぞれ、4つまたは3つのコンピューティングノードの増加となる)ように等、他の様式で判定される場合がある。ユーザ命令イベントがトリガを満たすイベントよりも高い優先度を持つ(例えば、ユーザ命令は、トリガを満たすイベントからのどのリクエストされた動的修正も必ずオーバーライドする場合)いくつかの実施形態および状況において、PESはさらに、この例において、ユーザ命令がイベントE4のために受信された後、トリガを満たすイベントをすべて無視する(または決して判定しない)ように、ユーザ命令イベントが受信された後、総計期間中に追加のトリガを満たすイベントが発生することを阻止する場合がある。さらに、この例において、現在の実際のコンピューティングノード数および公式記録のコンピューティングノード数220および225は、調和アクティビティH2の時点では、それぞれ7つおよび8つのコンピューティングノードと異なる。したがって、調和アクティビティH2の一部として、PESは、7つの現在の実際のコンピューティングノード数から、12の新しい更新された所望のコンピューティングノード数に上昇するように、コンピューティングノード群のために5つの追加のコンピューティングノードを提供することを開始し、さらに、12の新しい更新された所望のコンピューティングノード数に一致するように、公式記録のコンピューティングノード数225を更新する。このため、この例において、5つのコンピューティングノードの容量の利用可能性の変更は、イベントE9bに従い、変更C7に関して利用不可能になった1つのコンピューティングノードを置換することによって、ならびに、イベントE4、E5およびE6から判定された総計数修正に対応する4つの追加のコンピューティングノードの増加によって、間接的に発生する。
Thus, at the end of the second
第3の総計期間260c中、追加のイベントおよびコンピューティングノード容量の利用可能性の変更がさらに発生する。具体的には、変更C7は、およそ時間T22で完了し、この中で、現在利用可能なコンピューティングノードの数は、時間T21で利用可能性が開始された5つの追加のコンピューティングノードを反映するように、5つ増加して合計で12のコンピューティングノードになり、実際のコンピューティングノード数220はこれに応じて更新される。時系列グラフ205に示されるように、総計平均CPU利用205aおよび総計平均ネットワーク帯域幅利用205bの両方は、変更C7後に減少し、総計平均CPU利用205aは急速に低下し、具体的には、この例において、総計平均CPU利用205aは最終的に、トリガ250bに指定された条件に対応する20%の閾値未満に低下し、トリガTR−3 250bが満たされたという判定を含む、イベントE8を発生させ、時系列グラフ205において、総計平均CPU利用205a線上の第2の黒い楕円で図に例示される。トリガが満たされると、合計10のリクエストされた所望のコンピューティングノード数215fに対して、所望のコンピューティングノード数215を2つのコンピューティングノードだけ減少するというリクエストを開始する(または代替として、現在所望のコンピューティングノード数に関係なく、更新された所望のコンピューティングノード数が10に設定されるようにリクエストすることができる)。
During the third grand
最終的に、追加の変更C8は、およそ時間T28の総計期間260cの終了直前に、障害が発生または利用不可能になっている群のコンピューティングノードのうちの1つによって促され、発生する。対応するイベントE10は、変更C8とほぼ同時に発生し、その中で、PESは、必要に応じて利用不可能なコンピューティングノードを終了する。変更C6の様式に同様な様式で、PESは、この例において、利用不可能なコンピューティングノードの置換を即時に開始するのではなく、第3のセットH3の調和アクティビティが時間T31で開始されるまで待機しようとするが(例えば、イベントE8は、その時点でコンピューティングノード群のコンピューティングノードの所望の数が削減されることを可能にする、またはその可能性を高くするため)、他の実施形態において、PESはそうではなく、置換コンピューティングノードの提供を即時に開始する場合がある。具体的には、イベントE2、E3およびE9に関して上述の様式に同様な様式で、イベントE10は、この例において、同時またはほぼ同時に発生する、2つの別個のイベントE10aおよびE10b(別々に図示せず)に分割される。このように、PESは、この例において、利用不可能になったことが検出されているコンピューティングノードに対応するイベントE10aを時間T28で記録し、PESは、変更C8を直接発生させる等、利用不可能なコンピューティングノードを終了するためのアクティビティを時間T28で自動的に開始する。さらに、この例において、イベントE10aの結果として発生する、利用不可能なコンピューティングノードの終了はそれ自体、所望のコンピューティングノード数215を12のコンピューティングノードの所望の数215eに維持するように等、置換コンピューティングノードとして使用するために群の追加のコンピューティングノードのリクエストを開始する、別のイベントE10bとしておよそ時間T28で処理される。この例において、イベントE10bのリクエストは、イベントE9bと同様な様式において処理され、現在の総計期間260cの最後で実施される調和アクティビティH3まで延期されるが、他の実施形態および状況においては、置換コンピューティングノードのそのような提供は、そうではなく、即時に開始される場合がある。加えて、この例において、公式記録のコンピューティングノード数225は、変更C4〜C6に関して前述した様式に同様な様式において、変更C8に対応するようには更新されないが、他の実施形態において、公式記録のコンピューティングノード数225は、そのような変更を反映するように更新される場合がある。
Eventually, an additional change C8 is prompted and occurs by one of the group of computing nodes that have failed or become unavailable, approximately just before the end of the
したがって、第3の総計期間260cの最後に、調和アクティビティH3が開始され、コンピューティングノード群への変更となる。具体的には、この例のPESは、この例においてイベントE8およびE10bだけである、期間260b中に発生していたイベントに対応するリクエストされた修正を総計し、更新された現在所望の10のコンピューティングノード数215gに対応するように、この例においてコンピューティングノードを2つ減少することになる、先行の所望の12のコンピューティングノード数215eに動的総計数修正を行うと判定する。さらに、現在の実際のコンピューティングノード数および公式記録のコンピューティングノード数220および225は、調和アクティビティH3の時点で、それぞれ11のコンピューティングノードおよび12のコンピューティングノードと異なる。したがって、調和アクティビティH3の一部として、PESは、現在の実際のコンピューティングノード限界が11であることを考慮して、コンピューティングノード群から既存のコンピューティングノードのうちの1つを削除するように、現在所望の実際の10のコンピューティングノード数に到達するよう、現在公式の12のコンピューティングノード数の変更を開始する(例えば、任意選択的に既に開始したいくつかまたは全ての動作が完了後に、削除されたコンピューティングノード上のプログラムの実行を終了し、そのコンピューティングノードを他のユーザによる他の将来の使用のために利用可能にする)。このように、この例において、時間T31で既存のコンピューティングノードのうちの1つを削除するという容量の利用可能性の変更は、イベントE10bに関して1つの群コンピューティングノードの終了によって、ならびにイベントE8に対応する2つのコンピューティングノードのリクエストされた減少によって、間接的に発生する。PESはさらに、新しい更新された所望の10のコンピューティングノード数に一致するように、公式記録のコンピューティングノード数225を更新する。T31の直後に、最後の変更C9は、およそ時間T32で完了し、この中で、現在利用可能なコンピューティングノードの数は、時間T31でコンピューティングノード群からの削除が開始したコンピューティングノードを反映するように、合計で10のコンピューティングノードになるように1つ削減され、実際のコンピューティングノード数220はこれに応じて更新される。他の実施形態において、変更C9は、削除されるコンピューティングノードがコンピューティングノード群のさらなるアクティビティから即時に排除される場合等、変更を行うという判定後の実質的に即時の時間T31に発生する場合があるが、それでも一方で、削除されたコンピューティングノードは、一時的に実行中かつ操作の実施を継続するために利用可能である。
Therefore, at the end of the third
加えて、調和アクティビティH1、H2、およびH3はこの例において時間の単一点で発生すると例示されているが、いくつかまたは全ての調和アクティビティは、一定期間にわたって実際に発生する場合があり、さらに一定期間にわたって続行する他の効果を有する場合がある。例えば、少なくともいくつかの実施形態において、PESによって開始されるコンピューティングノード群のプログラム実行容量への何らかまたは全ての変更は、一時的なロックダウン期間になる場合があり、少なくともいくつかの他の種類のイベントまたは変更が可能ではない場合がある。そのようなロックダウンを発生させる場合がある、PESが指示するプログラム実行容量変更として、例えば、調和アクティビティの一部として開始されるプログラム実行容量増加および/または減少(例えば、新しいコンピューティングノードを追加、既存のコンピューティングノードを削減する等)、ならびに/あるいはPES判定に応答して即時に開始されるプログラム実行容量変更(例えば、コンピューティングノード障害、ユーザ命令の受信、ユーザ指定のトリガが満たされること等)を挙げることができる。そのようなロックダウンは、多様な種類の期間を有する場合があり(例えば、追加されているコンピューティングノードが利用可能になるまで等、指定の結果または発生まで、追加されているコンピューティングノードが利用可能になるまでの平均または予測時間等の指定された期間等)、いくつかの実施形態においては、PESが開始した変更の種類に基づいて変動する場合がある。そのようなロックダウン中、少なくともいくつかの種類のイベントまたは変更は、ロックダウン期間中、ユーザ指定のトリガが満たされることを可能にしない(または任意のそのようなトリガが満たされたことを無視することによって)、および/またはロックダウン期間中、ユーザ命令が受容されることを可能にしない(または任意のそのようなユーザ命令を無視することによって)等、可能ではない場合がある。さらに、いくつかの実施形態において、コンピューティングノード群に関連するユーザは同様に、ロックダウンの後に続く、またはそうではなく他の時間に有効になる、指定された時間量の冷却期間等、ロックダウンの様式と同様の様式において操作する冷却期間を同様に指定する場合がある。ロックダウンと同様に、冷却期間中、少なくともいくつかの種類のイベントまたは変更は、冷却期間中にユーザ指定のトリガが満たされることを可能にしない(または任意のそのようなトリガが満たされたことを無視することによって)等、可能ではない場合がある。ユーザおよび/またはPESは、他の実施形態において他の様式でコンピューティングノード群への修正を制御する場合があることが理解される。 In addition, although the harmony activities H1, H2, and H3 are illustrated in this example as occurring at a single point in time, some or all of the harmony activities may actually occur over a period of time, and even more May have other effects that continue over time. For example, in at least some embodiments, any or all changes to the program execution capacity of a group of computing nodes initiated by a PES may result in a temporary lockdown period, and at least some other Types of events or changes may not be possible. As the program execution capacity change indicated by the PES, which may cause such a lockdown, for example, an increase and / or decrease in program execution capacity initiated as part of the harmonization activity (eg, adding new computing nodes) , Reduce existing computing nodes, etc.) and / or program execution capacity changes that are initiated immediately in response to a PES decision (eg, computing node failure, receipt of user instructions, user-specified triggers are met) Etc.). Such lockdowns may have various types of time periods (for example, until an added computing node has a specified result or occurrence, such as until the added computing node is available). In some embodiments, it may vary based on the type of change initiated by the PES. During such lockdown, at least some types of events or changes do not allow a user-specified trigger to be met during the lockdown period (or ignore any such trigger being met) And / or does not allow user commands to be accepted during lockdown periods (or by ignoring any such user commands), etc. Further, in some embodiments, the user associated with the compute node group is similarly locked, such as a specified amount of cooling period that follows lockdown or otherwise becomes valid at other times. A cooling period operating in a manner similar to the down manner may be specified as well. Similar to lockdown, during the cooling period, at least some types of events or changes do not allow a user-specified trigger to be met during the cooling period (or any such trigger has been met). May not be possible). It is understood that users and / or PES may control modifications to computing nodes in other manners in other embodiments.
このため、この様式において、PESは、多様な状況に基づいて、コンピューティングノード群に対する多様な動的修正を行うことを含め、コンピューティングノードの群によってユーザに提供されるプログラム実行容量を管理するように操作する。図2Aに例示されるイベントおよび変更は、例示の目的のために提供され、その実際のイベント、変更およびPESの他の操作は、他の実施形態および状況において異なる場合があることが理解される。 Thus, in this manner, the PES manages the program execution capacity provided to the user by the group of computing nodes, including performing various dynamic modifications to the group of computing nodes based on various situations. Operate as follows. The events and changes illustrated in FIG. 2A are provided for illustrative purposes, and it is understood that the actual events, changes, and other operations of the PES may differ in other embodiments and situations. .
図2Bは、PESSMモジュールの実施形態によって自動的に実施される場合がある技法等、図2Aに関して前述した動的コンピューティングノード数修正に因果関係情報を自動的に結論付けるための技法の例を例示する。具体的には、図2Bは、図2Aに例示される情報のうちのいくつかに対応する情報を記憶する2つの例示的なデータベーステーブルデータ構造を例示し、図2Bの例示的テーブル280は、図2Aの例示的なコンピューティングノード群(図2Bにおいて「群1」と呼ばれる)に発生した例示的なコンピューティングノード容量の利用可能性の変更に関する多様な情報を記憶し、図2Bの例示的なテーブル290は、図2Aの例示的なコンピューティングノード群「群1」に発生した例示的なイベントに関する多様な情報を記憶する。
FIG. 2B is an example of a technique for automatically concluding causal information to the dynamic computing node number correction described above with respect to FIG. 2A, such as a technique that may be automatically implemented by an embodiment of the PESSM module. Illustrate. Specifically, FIG. 2B illustrates two exemplary database table data structures that store information corresponding to some of the information illustrated in FIG. 2A, and the exemplary table 280 of FIG. A variety of information regarding the change in availability of the exemplary computing node capacity that occurred in the exemplary computing node group of FIG. 2A (referred to as “
例示的なテーブル280は、図2Aに関して記載される例示的な変更C1〜C10のうちの1つに各々対応する、多様な行またはエントリ285a〜285kを含み、多様なフィールドまたは列280a〜280xは各行に例示される。具体的には、この例において、各行は、固有の識別子(以下「ID」)280a、変更に対応する適用可能なコンピューティングノード群のID280b、プログラム実行容量変更の種類280c、プログラム実行容量変更の意図された結果の指示280d、変更についての多様な詳細280e、変更の開始および終了時間280fおよび280g、変更が発生またはそうでなければ変更が関連する総計期間280h(この例において、総計期間の最後に実施される調和アクティビティに基づいて呼ばれる)、変更イベント結合ID280x、および任意選択的に多様な他の情報を含む。1つの例証例として、行285aは、群1の変更C1に対応し、これは、総計期間H1中の時間T02に完了される4つのコンピューティングノードの増加に関与する、群1のコンピューティングノード数における変更に対応する。他の行は同様な情報を含む。 The example table 280 includes various rows or entries 285a-285k, each corresponding to one of the exemplary changes C1-C10 described with respect to FIG. 2A, and the various fields or columns 280a-280x are Illustrated in each row. Specifically, in this example, each row includes a unique identifier (hereinafter “ID”) 280a, an ID 280b of an applicable computing node group corresponding to the change, a type 280c of program execution capacity change, and a program execution capacity change type. Intended result indication 280d, various details about the change 280e, start and end times 280f and 280g of the change, a total period 280h (in this example, the end of the total period in which the change occurs or otherwise the change is associated) The change event binding ID 280x, and optionally various other information. As one illustrative example, row 285a corresponds to group C change C1, which is responsible for the increase of four computing nodes completed at time T02 during aggregate period H1. Responds to changes in numbers. The other lines contain similar information.
例示的なテーブル290は、図2Aに関して記載の例示的なイベントE1〜E10のうちの1つに各々対応する、多様な行またはエントリ295a〜295mを含み、多様なフィールドまたは列290a〜290xは各行に例示される。具体的には、この例において、各行は、固有の識別子(以下「ID」)290a、イベントに対応する適用可能なコンピューティングノード群のID290b、イベントの種類290c、イベントの発生源についての情報290d、イベントの時間290e、イベントが発生またはイベントが関連する総計期間290f(この例において、総計期間の最後に実施される調和アクティビティに基づいて称される)、変更イベント結合ID290x、および任意選択的に多様な他の情報(例えば、受信されたユーザ命令に関連する特定のユーザ)を含む。1つの例証例として、行295hは、群1のイベントE4に対応し、それは、群1の所望のコンピューティングノード数を3つのコンピューティングノードだけ増加することをリクエストする、総計期間H2中の時間T19に受信されたユーザ命令に対応する。他の行は同様な情報を含む。
The example table 290 includes various rows or entries 295a-295m, each corresponding to one of the exemplary events E1-E10 described with respect to FIG. 2A, and the various fields or columns 290a-290x are each row. Is exemplified. Specifically, in this example, each row includes a unique identifier (hereinafter “ID”) 290a, an ID 290b of an applicable computing node group corresponding to the event, an event type 290c, and information 290d about the source of the event. , The event time 290e, the total period 290f (in this example referred to based on the harmonized activity performed at the end of the total period), the change event binding ID 290x, and optionally Includes a variety of other information (eg, specific users associated with received user instructions). As an illustrative example, row 295h corresponds to group E event E4, which requests that the desired number of computing nodes in
図2Bの例において、テーブル280および290の変更イベント結合ID情報280xおよび290xは、変更とイベントとの間の関係を反映するように結論付けられる因果関係情報を反映する。具体的には、この例において、テーブル280および290の行が変更イベント結合ID情報280xおよび290xの共通の値を共有する場合、対応するイベントと変更との間の結論付けられた因果関係を反映する。一例として、図2Aに関して前述したように、イベントE3bは、利用不可能になったコンピューティングノードの置換コンピューティングノードを提供することに対応し、これは、結果として群へのコンピューティングノードの追加に対応する変更C5に直接帰属可能である。したがって、行295e(イベントE3bに対応する)および列285g(変更C5に対応する)は、共通の結合識別子を共有する。 In the example of FIG. 2B, the change event binding ID information 280x and 290x in the tables 280 and 290 reflects the causal relationship information that is concluded to reflect the relationship between the change and the event. Specifically, in this example, if the rows of tables 280 and 290 share a common value for change event binding ID information 280x and 290x, reflect the concluded causal relationship between the corresponding event and the change. To do. As an example, as described above with respect to FIG. 2A, event E3b corresponds to providing a replacement computing node for a computing node that has become unavailable, resulting in the addition of a computing node to the group. Can be directly attributed to the change C5 corresponding to. Thus, row 295e (corresponding to event E3b) and column 285g (corresponding to change C5) share a common binding identifier.
これとは対照的に、調和アクティビティH2の間に開始される5つのコンピューティングノードの追加に対応する、変更C7は、その変更に対して直接帰属可能な単一のイベントを有さない。具体的には、イベントE4、E5、およびE6は各々、群1に対して動的修正をリクエストし、それらは、変更C7のための5つのコンピューティングノードのうちの4つの追加を促すように、総計され、組み合わされて使用された。このように、行295f〜295h(イベントE4〜E6に対応する)および行285i(変更C7に対応する)は全て共通の結合識別子を共有する。さらに、図2Aの例において、変更C7の一部として追加された5つのコンピューティングノードのうちの1つは、変更C6に関して利用不可能になったコンピューティングノードの置換ノードであり、置換コンピューティングノードの開始は、イベントE9bに対応する。したがって、行295j(イベントE9bに対応する)および列285i(変更C7に対応する)も、同一の共通の結合識別子を有する。他の実施形態において、置換コンピューティングノードの提供が、利用不可能なコンピューティングノードを即時に置換するため等、イベントE4〜E6に対応する4つの追加のコンピューティングノードの提供とは別にイベントE9bにおいて開始された場合、それに対応する変更は、期間260bの終了および結果の調和アクティビティH2の前に発生し、テーブル280において別々に示され、イベントE9bおよびその追加の変更は、別個の対応する結合識別子を共有する。加えて、変更C7のために追加される5つのコンピューティングノードは、テーブル280の単一の行に総計された様式で示されるが、他の実施形態においては、追加される各コンピューティングノードは、テーブル280の独立した行285に表される場合があり、その場合、各々は、総計された変更Cの行285iだけに現在例示されている、同じ結合識別子N7を共有する。
In contrast, change C7, corresponding to the addition of five computing nodes initiated during harmony activity H2, does not have a single event that can be directly attributed to that change. Specifically, events E4, E5, and E6 each request a dynamic modification for
さらに、この例において、動的ユーザ命令および/または満たされたユーザトリガに基づくだけでなく、コンピューティングノード数に対する不注意の変更に基づいて(例えば、コンピューティングノードの障害発生または利用不可能になることに起因して)、コンピューティングノード数に対する動的修正に対応する変更がテーブル280内で追跡される。そのような変更は、アクティビティの監視に基づいて検出され、追加の変更をトリガするイベントとして例示されるが(例えば、置換コンピューティングノードの提供)、他の実施形態においては、そのような変更を追跡しない、および/またはシステム起動の置換アクティビティをイベントとして処理しない等、他の様式で処理される場合がある。さらに、テーブル280および290の変更イベント結合情報は、1つ以上の対応するイベントに直接帰属可能な変更(例えば、それらの変更を即時に開始させるイベント)と、1つ以上の対応するイベントに間接的に帰属可能な変更(例えば、調和アクティビティの間等、共に総計され、組み合わされたイベントが、それらの変更を開始させる)との間を区別しないが、他の実施形態においては、そのような情報はさらに追跡される場合がある。 Further, in this example, not only based on dynamic user instructions and / or satisfied user triggers, but also based on inadvertent changes to the number of computing nodes (e.g. computing node failure or unavailable) As such, changes corresponding to dynamic modifications to the number of computing nodes are tracked in table 280. Such changes are detected based on activity monitoring and are exemplified as events that trigger additional changes (eg, provision of a replacement computing node), but in other embodiments such changes are It may be handled in other ways, such as not tracking and / or not processing system-initiated replacement activities as events. Further, the change event binding information in tables 280 and 290 is indirect to changes that can be directly attributed to one or more corresponding events (eg, events that immediately initiate those changes) and one or more corresponding events. Changes that can be attributed to each other (eg, events that are aggregated together and combined, such as during a harmony activity, initiates those changes), but in other embodiments, such Information may be further tracked.
前述のように、コンピューティングノード群に対する特定の動的プログラム実行容量修正に対する責任の帰属は、なぜ変更が発生したかの説明をコンピューティングノード群に関連するユーザに提供する際を含めて、多様な利益を提供する場合がある。そのような責任帰属情報は、どのイベントが群の1つ以上のコンピューティングノードの利用可能性における特定の指示されたプログラム実行容量修正または他の変更の原因であるか、および/またはどのプログラム実行容量修正または他のコンピューティングノード群の利用可能性の変更が1つ以上の指示されたイベントによって発生するかを識別するリクエスト等、ユーザまたは他の情報源から受信される多様な種類のクエリに応答して、さらに、生成および/または使用される場合がある。図2Bに関する記載のように、テーブル280および290に例示される結合情報は、責任帰属情報を追跡し、提供するための1つの機構を提供する。例えば、図2Aの変更C7に対応する5つのコンピューティングノードの追加に関して、ユーザは、5つのコンピューティングノードがなぜ追加されたかを知りたい場合がある(例えば、特に、3つのコンピューティングノードを追加するというイベントE4のユーザ命令を鑑みて)。図2Bに例示される結合情報を使用することによって、PESまたは他のシステムは、人間可読説明を容易に自動的に生成することができる。例えば、図2Aの変更C1に対応する4つのコンピューティングノードを追加する原因に関するユーザリクエストに応答して、PESまたは他のシステムは、例えば、「変更C01は、時間T1にイベントE01によって直接発生した。イベントE01は、8つのコンピューティングノードの群を開始するというユーザUUUからのリクエストだった」ということを示すことができる。この情報は、イベントE1に対応するテーブル290の行295aを識別するために、変更C1に対応する行285aからの結合情報280xを使用すること、および所望の様式で行285aおよび295aから情報を抽出し、フォーマットすることに基づいて(例えば、ユーザリクエストまたは先行のユーザの希望設定に基づいた形式、PESデフォルトに基づいた形式等)生成される場合がある。同様に、8つのコンピューティングノードの群を開始するユーザ命令E1の効果としてユーザリクエストに応答して、PESまたは他のシステムは、例えば、「時間T1のイベントE01は、変更C01、C02およびC03を直接発生させる。変更C01は、T1で開始し、時間T2で終了した4つのコンピューティングノードの追加だった。変更C02は、T1で開始し、時間T3で終了した3つのコンピューティングノードの追加だった。変更C03は、時間T1で開始し、完了しなかった1つのコンピューティングノードの追加だった。」と示す場合がある。別の例として、図2Aの変更C7に対応する5つのコンピューティングノードを追加する原因としてユーザリクエストに応答して、PESまたは他のシステムは、例えば、「変更C07は、T11からT21の期間中に発生したイベントE05、E06、E04、およびE09bによって間接的に発生した。イベントE05は、トリガTR−1が満たされたことに基づいて、4つの追加のコンピューティングノードのリクエストだった。イベントE06は、トリガTR−Nが満たされたことに基づいて、2つの追加のコンピューティングノードのリクエストだった。イベントE04は、ユーザUUUからの動的ユーザ入力命令に基づく3つの追加のコンピューティングノードのリクエストだった。イベントE09bは、利用不可能になった群のコンピューティングノードの自動終了に基づいて、1つの置換コンピューティングノードのリクエストだった。」と示す場合がある。そのようなテキスト文字列に加えて、またはこの代わりに、責任帰属情報はさらに、自動報告書(例えば、テーブル、図等)等の多様な他の形式で定期的または他の予定様式で生成される場合がある。そのような責任帰属情報は、他の実施形態において多様な他の様式で生成され、使用される場合があることが理解される。 As mentioned above, the attribution of responsibility for a particular dynamic program execution capacity modification for a group of computing nodes can vary, including providing an explanation to the user associated with the group of computing nodes why the change occurred. May provide a significant benefit. Such responsibility attribution information may indicate which event is responsible for a specific indicated program execution capacity modification or other change in availability of one or more computing nodes in the group and / or which program execution. For various types of queries received from a user or other source, such as a request to identify whether a capacity modification or other computing node availability change occurs due to one or more indicated events In response, it may be further generated and / or used. As described with respect to FIG. 2B, the combined information illustrated in tables 280 and 290 provides one mechanism for tracking and providing responsibility attribution information. For example, with respect to adding five computing nodes corresponding to change C7 in FIG. 2A, the user may want to know why five computing nodes were added (eg, in particular adding three computing nodes). In view of the user command of event E4). By using the combined information illustrated in FIG. 2B, a PES or other system can easily automatically generate a human-readable description. For example, in response to a user request regarding the cause of adding four computing nodes corresponding to change C1 of FIG. 2A, the PES or other system may, for example, “change C01 occurred directly by event E01 at time T1. The event E01 was a request from the user UUU to start a group of 8 computing nodes. This information uses join information 280x from row 285a corresponding to change C1 to identify row 295a of table 290 corresponding to event E1, and extracts information from rows 285a and 295a in the desired manner. However, it may be generated based on formatting (for example, a format based on a user request or a preference setting of a preceding user, a format based on a PES default, etc.). Similarly, in response to a user request as an effect of a user instruction E1 to start a group of eight computing nodes, PES or other system, for example, “Event E01 at time T1, changes C01, C02 and C03. Change C01 was the addition of four computing nodes starting at T1 and ending at time T2. Change C02 was the addition of three computing nodes starting at T1 and ending at time T3 The change C03 was an addition of one computing node that started at time T1 and was not completed. " As another example, in response to a user request as a cause of adding five compute nodes corresponding to change C7 of FIG. 2A, PES or another system may, for example, “change C07 during T11 to T21. Indirectly triggered by events E05, E06, E04, and E09b that occurred at time 4. Event E05 was a request for four additional computing nodes based on the trigger TR-1 being satisfied. Was a request for two additional computing nodes based on the trigger TR-N being satisfied, and event E04 is a request for three additional computing nodes based on dynamic user input instructions from the user UUU. Event E09b is a group that has become unavailable Based on the automatic termination of the computing nodes may indicate that it was a request for one substituted computing nodes. ". In addition to or in lieu of such text strings, liability attribution information is further generated periodically or in other scheduled formats in a variety of other formats such as automatic reports (eg, tables, diagrams, etc.) There is a case. It is understood that such responsibility attribution information may be generated and used in a variety of other ways in other embodiments.
図2Bに例示されるイベントおよび変更に関する情報は、例示目的のために提供され、記憶される情報およびそのような情報の記憶は、他の実施形態において多様な他の様式で実施される場合があることが理解される。さらに、PESは、ユーザ定義トリガについて、監視された性能測定情報について、ユーザアカウントについて等の情報を記憶する追加のテーブルを有する等、他の実施形態においてユーザおよびコンピューティングノード群についての多様な追加の種類の情報を記憶する場合がある。 Information regarding the events and changes illustrated in FIG. 2B is provided for illustrative purposes, and the stored information and storage of such information may be implemented in a variety of other ways in other embodiments. It is understood that there is. In addition, the PES has various additions for users and computing nodes in other embodiments, such as having additional tables to store information such as user-defined triggers, monitored performance measurement information, user accounts, etc. Types of information may be stored.
加えて、図2Aおよび2Bの前述の例は、例示目的に提供され、他の実施形態は多様な方式で例とは異なる場合がある。例えば、プログラム実行容量は、多様な利用可能なコンピューティングノードが同等として処理される場合等(例えば、同等のコンピューティングリソースを有する)、これらの例ではコンピューティングノードの数に基づいて測定され、修正されるが、多様な利用可能なコンピューティングノードは、変動する特性を有する異なる種類である場合(例えば、異なる量の処理容量、メモリ、プラットフォーム仕様等)、および/またはプログラム実行容量がコンピューティングノード数以外の様式で追跡される、他の実施形態が提供される。いくつかのそのような実施形態において、多様なリクエストは、リクエストに関連するプログラムを実行するために選択されたコンピューティングノードの群において使用するための1つ以上の特定の種類のコンピューティングノードの指示を含む場合があり、それらのリクエストは、対応する指定の種類のコンピューティングノード上でのみ達成される場合がある。 In addition, the above examples of FIGS. 2A and 2B are provided for illustrative purposes, and other embodiments may differ from the examples in various ways. For example, program execution capacity is measured based on the number of computing nodes in these examples, such as when various available computing nodes are treated as equivalent (eg, having equivalent computing resources), Although modified, the various available computing nodes are of different types with varying characteristics (eg, different amounts of processing capacity, memory, platform specifications, etc.) and / or program execution capacity is computing. Other embodiments are provided that are tracked in a manner other than the number of nodes. In some such embodiments, the various requests may include one or more specific types of computing nodes for use in the group of computing nodes selected to execute the program associated with the request. Instructions may be included, and those requests may only be accomplished on the corresponding specified type of computing node.
加えて、少なくともいくつかの実施形態において、PESまたは他のシステムはさらに、コンピューティングノードの群を管理する一部として、他の種類のアクティビティを実施する場合がある。例えば、前述のように、PESまたは他のシステムは、多様な時点でコンピューティングノード群からコンピューティングノードを追加または削除するように判定する場合があり、期間中に満たされた1つ以上のトリガおよび/または期間中に受信されたユーザ命令に応答して総計期間の最後の調和アクティビティ中、即時に効果を有することが指定または判定されたユーザ命令またはトリガを満たすことに応答して任意の時間に、障害を発生したコンピューティングノードを置換および/または進行中の操作が禁止されているコンピューティングノードを終了して削除するように等、PESまたは他のシステムの自動アクティビティに応答して任意の時点で等を含む。少なくともいくつかの実施形態において、PESまたは他のシステムはさらに、少なくともいくつかのそのようなコンピューティングノード群修正のための正確なタイミングを判定する時に、他の因子を考慮する場合がある。例えば、ユーザが所与の期間の所与の数のコンピューティングノードの使用に対して責任を負わされる状況において(例えば、次の時間X個のコンピューティングノードに対して既に課金されている)、そのような情報は、コンピューティングノード群に対する少なくともいくつかの種類の修正に関するタイミングを判定するために使用される場合がある。PESまたは他のシステムが、群のコンピューティングノードの数をX未満に削減すると判定した場合、PESまたは他のシステムは、コンピューティングノード数をX未満に実際に削減する前に、所与の期間の最後近辺または最後(例えば、ユーザが既に課金されている時間の最後)まで待機すると判定する場合がある。同様に、群のコンピューティングノードが、新しい調和アクティビティが実施される時点近辺(例えば、リクエストされたコンピューティングノード数修正が総計されている期間の最後近辺)に障害を発生した場合、PESまたは他のシステムは、障害を反映するように実際のノード数および任意選択的に公式記録のノード数を更新するが、置換コンピューティングノードの追加を即時に開始しないと判定する場合があり、この様式では、調和アクティビティ中のリクエストされたコンピューティングノード数修正の総計が、群のコンピューティングノード数を1つ以上のコンピューティングノードだけ削減すると決定した場合、群の既存のコンピューティングノードを終了するのではなく、障害を発生したコンピューティングノードを削減する1つとして使用する場合がある。 In addition, in at least some embodiments, the PES or other system may further perform other types of activities as part of managing a group of computing nodes. For example, as described above, a PES or other system may decide to add or remove a computing node from a group of computing nodes at various times, and one or more triggers satisfied during the period And / or any time in response to satisfying a user command or trigger designated or determined to have immediate effect during the last reconciliation activity of the aggregate period in response to a user command received during the period In response to automatic activity of the PES or other system, such as replacing a failed computing node and / or terminating and deleting a computing node that is prohibited from performing ongoing operations Including at times. In at least some embodiments, the PES or other system may further consider other factors when determining the exact timing for at least some such computing node group modifications. For example, in a situation where a user is responsible for using a given number of computing nodes for a given time period (eg, already charged for X computing nodes the next time) Such information may be used to determine timing for at least some types of modifications to the computing nodes. If the PES or other system determines to reduce the number of compute nodes in the group to less than X, the PES or other system will not reduce the number of compute nodes to less than X for a given period of time. It may be determined to wait until near the end or the end (for example, the end of the time when the user is already charged). Similarly, if a group of compute nodes fails near the point in time when a new harmonious activity is performed (eg, near the end of the period when the requested compute node count correction is aggregated), the PES or other The system may update the actual number of nodes and optionally the number of nodes in the official record to reflect the failure, but may decide not to start adding replacement computing nodes immediately, in this manner If the sum of the requested number of compute node modifications during the harmonization activity decides to reduce the number of compute nodes in the group by one or more compute nodes, then exiting the group's existing compute nodes Reduce the number of failed compute nodes It may use as one that.
いくつかの実施形態において、PESまたは他のシステムは、コンピューティングノード群の複数の別個の種類の修正を同時に管理する場合がある。一例として、コンピューティングノード群は、単一の場所にあるコンピューティングノードを使用して現在所望のコンピューティングノード数に管理されている場合があるが、ユーザは、群のコンピューティングノードのうちの指定された所望のサブセットが、別個の第2の場所に配置されるように、コンピューティングノード群に対する第2の種類のメトリックを指定すると判断する場合がある。その場合、PESまたは他のシステムは、第2のメトリックの所望の値に到達するまで、第2の場所にある群に任意の新しいコンピューティングノードを増分的に追加し、第1の場所にある群から任意の既存のコンピューティングノードを増分的に削除することによって、または代替として、置換コンピューティングノードが第2の場所にある群に追加されることを可能にするように、第1の場所にある群から既存のコンピューティングノードを即時に終了することによって、を含む、多様な様式において、第2のメトリックの所望の値を満たすように操作する場合がある。そのような増分の追加および/または削除は、利用不可能なコンピューティングノードを置換する、動的に指定されたユーザ命令および/または満たされたユーザ指定のトリガに応答してコンピューティングノード数を修正する等を含む、他の部分に詳細を記載される様式のうちのいずれかにおいてトリガされる場合がある。加えて、コンピューティングノード数および場所は、この例において同時にバランスされるが、多様な他の種類の変更が同様な様式で(例えば、異なる関連量のコンピューティングリソースを有する異なる種類に基づいて等、既存のコンピューティングノードを第1の種類から第2の種類に変更するように)実施される場合がある。さらに、プログラム実行容量修正は、いくつかの例において、コンピューティングノード数を変更することによって行われるが、他の実施形態において、そのような容量修正は、群の1つ以上のコンピューティングノードのプログラム実行容量を変更することによって行われる場合がある(例えば、第1のコンピューティングノードを対象のコンピューティングリソースの事実上1つ以上の種類を有する第2のコンピューティングノードと置換することによって、既に群の一部であるコンピューティングノードのうちの1つに対して利用可能な1つ以上のコンピューティングリソースの量を修正することによって等)。 In some embodiments, a PES or other system may simultaneously manage multiple distinct types of modifications of computing nodes. As an example, a group of computing nodes may be currently managed to a desired number of computing nodes using computing nodes at a single location, but a user may It may be determined to specify a second type of metric for a group of computing nodes such that a specified desired subset is located at a separate second location. In that case, the PES or other system incrementally adds any new computing nodes to the group at the second location until the desired value of the second metric is reached, and is at the first location. The first location to allow a replacement computing node to be added to the group at the second location by incrementally removing any existing computing node from the group, or alternatively May be manipulated to meet the desired value of the second metric in a variety of ways, including by immediately terminating existing computing nodes from a group. Such incremental additions and / or deletions reduce the number of computing nodes in response to dynamically specified user instructions and / or satisfied user-specified triggers that replace unavailable computing nodes. It may be triggered in any of the ways detailed in other parts, including modifying etc. In addition, the number and location of computing nodes are balanced simultaneously in this example, but various other types of changes can be made in a similar manner (eg, based on different types having different related amounts of computing resources, etc. , To change an existing computing node from the first type to the second type). Further, program execution capacity modifications are performed by changing the number of computing nodes in some examples, but in other embodiments, such capacity modifications are performed on one or more computing nodes of the group. May be done by changing the program execution capacity (e.g., by replacing the first computing node with a second computing node having virtually one or more types of computing resources of interest, Etc.) by modifying the amount of one or more computing resources available to one of the computing nodes that are already part of the group.
前述のように、多様な種類の機能は、多様な実施形態においてPESによって提供され、使用される場合があり、機能は多様な方式で提供される場合がある。例えば、いくつかの実施形態において、PESから利用可能なプログラム実行容量は、コンピューティングマシンの間でデータを伝送することが可能な1つ以上のネットワークまたは他のデータ交換媒体を介して相互接続された複数の物理的コンピューティングマシンを介して等、ユーザの代わりにプログラムを実行するための複数のコンピューティングノードを含む場合がある。コンピューティングマシンのうちの少なくともいくつかは、いくつかの実施形態において、各々複数のプログラムを同時に実行するに充分なコンピューティング関連リソースを含み(例えば、充分な書き込み可能メモリ、不揮発性記憶装置、CPUサイクルまたは他のCPU使用量測定値、ネットワーク帯域幅、スワップスペース等)、いくつかのそのような実施形態におけるコンピューティングマシンのうちの少なくともいくつかは各々、別個のユーザの代わりに1つ以上のプログラムを各々実行する場合がある複数の仮想マシンコンピューティングノードをホストする場合がある。さらに、多様な実施形態において、PESは、複数のユーザの代わりに、多様な種類のプログラムを実行する場合がある。例えば、ユーザの代わりに実行されるそのようなプログラムは、1つ以上のオペレーティングシステム、アプリケーション(例えば、サーバおよび/または他のソフトウェアアプリケーション)、ユーテリティ、ライブラリ等を含む場合があり、加えて、少なくともいくつかの実施形態において、そのようなプログラムは、1つ以上の仮想マシンコンピューティングノード上でブート可能またはロード可能で、各々がオペレーティングシステムソフトウェア、1つ以上のアプリケーションプログラムのためのソフトウェア、および/または構成情報等を含む場合がある、仮想マシンイメージ等、実行可能なソフトウェアイメージを含む場合がある。 As described above, various types of functions may be provided and used by PES in various embodiments, and functions may be provided in various ways. For example, in some embodiments, program execution capacity available from a PES is interconnected via one or more networks or other data exchange media capable of transmitting data between computing machines. It may include multiple computing nodes for executing programs on behalf of a user, such as through multiple physical computing machines. At least some of the computing machines, in some embodiments, each include sufficient computing-related resources to execute multiple programs simultaneously (eg, sufficient writable memory, non-volatile storage, CPU Cycle or other CPU usage measurement, network bandwidth, swap space, etc.), at least some of the computing machines in some such embodiments each have one or more of them on behalf of a separate user It may host multiple virtual machine computing nodes that may each execute a program. Further, in various embodiments, the PES may execute various types of programs on behalf of multiple users. For example, such a program executed on behalf of a user may include one or more operating systems, applications (eg, servers and / or other software applications), utilities, libraries, etc. In addition, at least In some embodiments, such programs are bootable or loadable on one or more virtual machine computing nodes, each operating system software, software for one or more application programs, and / or Or, it may include executable software images, such as virtual machine images, which may include configuration information.
少なくともいくつかの実施形態において、PESによる1つ以上のコンピューティングノードの群上での1つ以上のプログラムの実行は、それらのプログラムの即時実行に対する現在の実行リクエストに応答して開始される場合がある。代替として、開始は、今現在時のためにそれらのプログラムのその後将来の実行を予定またはそうでなければ予約する、以前に受信されたプログラム実行リクエストに基づく場合がある。プログラム実行リクエストは、ユーザから直接(例えば、プログラム実行サービスによって提供される相互作用型コンソールまたは他のGUIを介して)、または1つ以上の他のプログラムまたはそれ自体の他のインスタンスの実行を自動的に開始するユーザの実行中のプログラムから(例えば、ウェブサービスを使用するAPI等、プログラム実行サービスによって提供されるAPIを介して)のように、多様な方式で受信される場合がある。プログラム実行リクエストは、実行されるプログラムの実行可能または他のコピー、実行のために以前に登録または入力されたプログラムの指示、および同時に実行されるプログラムのいくつかのインスタンス(例えば、単一の所望のいくつかのインスタンスとして、最小および最大数の所望のインスタンスとして等)、ならびに1つ以上のプログラムの実行のための多様な他の種類の詳細設定および/または要件(例えば、リソース割り当て、実行の地理的および/または論理的場所、他のプログラムおよび/またはコンピューティングノードに対する実行の近似性、タイミング関係条件等)等、1つ以上のプログラムの実行の開始において使用される多様な情報を含む場合がある。 In at least some embodiments, execution of one or more programs on a group of one or more computing nodes by a PES is initiated in response to a current execution request for immediate execution of those programs There is. Alternatively, initiation may be based on a previously received program execution request that schedules or otherwise reserves future future execution of those programs for the current time. A program execution request can be automated from the user (eg, via an interactive console or other GUI provided by a program execution service) or automatically executing one or more other programs or other instances of itself. In some cases, it may be received in a variety of ways, such as from a running program of a user that starts automatically (eg, via an API provided by a program execution service, such as an API using a web service). A program execution request is an executable or other copy of the program to be executed, an indication of the program previously registered or entered for execution, and several instances of the program to be executed simultaneously (eg, a single desired As several instances, as a minimum and maximum number of desired instances, etc.), and various other types of detailed settings and / or requirements for execution of one or more programs (eg, resource allocation, execution of Including diverse information used at the start of execution of one or more programs, such as geographical and / or logical location, execution proximity to other programs and / or computing nodes, timing relationships, etc.) There is.
指示された時間にプログラムの1つ以上のインスタンスを実行するリクエストを受信した後、PESは、プログラムインスタンスを実行するために群の中で使用する1つ以上のコンピューティングノードを判定することができる。いくつかの実施形態において、使用されるコンピューティングノードの判定は、将来の実行の場合であってもリクエストの時に実施される。他の実施形態において、1つ以上のプログラムインスタンスの将来の実行のために使用されるコンピューティングノードの判定は、その時点で利用可能な情報に基づく実行の将来の時間等、後の時間まで延期される場合がある。いくつかの実施形態において、ユーザの代わりに1つ以上のプログラムの実行のためにどのコンピューティングノードを使用するかの判定は、ユーザがPESを使用するために加入および/または登録する時、および/またはユーザのためにプログラムを実行するリクエストに先行する別の時間等、実行するリクエストに先行して行われる場合がある。例えば、いくつかのそのような実施形態において、1つ以上のコンピューティングノードは、期間中ユーザのためにソフトウェアを実行するリクエストが受信された任意の時間等、その期間中の任意の時間に関連するコンピューティングノード上でそのユーザの代わりに実行される場合がある等、一定期間ユーザに関連付けられる場合がある。加えて、いくつかの実施形態において、ユーザの代わりにプログラムを実行するためにどのコンピューティングノードを使用するかの判定は、例えば、コンピューティングノードが未使用および/またはそうでなければプログラムを実行するために利用可能である時に1つ以上のコンピューティングノード上で1つ以上の保留中のリクエストのプログラムを実行する等、1つ以上のコンピューティングノードおよび/または1つ以上のコンピューティングノードのコンピューティングリソースがユーザのためにプログラムを実行するために利用可能になる時に行われる場合がある。 After receiving a request to execute one or more instances of the program at the indicated time, the PES may determine one or more computing nodes to use in the group to execute the program instance. . In some embodiments, the determination of the computing node to be used is performed at the time of the request, even for future executions. In other embodiments, the determination of the computing node used for future execution of one or more program instances is postponed until a later time, such as a future time of execution based on information currently available. May be. In some embodiments, determining which computing node to use for executing one or more programs on behalf of a user is determined when the user subscribes and / or registers to use the PES, and It may be done prior to the request to execute, such as another time prior to the request to execute the program for the user. For example, in some such embodiments, one or more computing nodes may be associated with any time during the period, such as any time a request to execute software for a user is received during the period. May be associated with a user for a period of time, such as running on behalf of that user on a computing node. In addition, in some embodiments, determining which computing node to use to execute the program on behalf of the user can be performed, for example, by the computing node being unused and / or otherwise executing the program. Of one or more computing nodes and / or one or more computing nodes, such as executing a program of one or more pending requests on one or more computing nodes when available to This may occur when computing resources become available to execute programs for the user.
各プログラムコピーまたはインスタンスの実行のためにどのコンピューティングノードを使用するかの判定は、リクエストに指定あるいはそうでなければプログラムおよび/または関連するユーザに指定された任意の詳細設定および/または要件に基づいて(例えば、登録時等)を含む、多様な方式で行われる場合がある。例えば、プログラムインスタンスの実行のために好ましいおよび/または必要なリソースの条件が判定される場合(例えば、メモリおよび/または記憶装置、CPUタイプ、サイクルまたは他の性能メトリック、ネットワーク容量、プラットフォームタイプ等)、プログラムインスタンスを実行するために適したコンピューティングノードの判定は、少なくとも部分的に、コンピューティングノードがそれらのリソース条件を満たすために利用可能な充分なリソースを有しているどうかに基づく場合がある。プログラム実行サービス上でプログラムを実行および実行するように構成することに関する追加の詳細は、2006年3月31日付提出の係属中米国特許出願第11/395,463号、「Managing Execution of Programs by Multiple Computing Systems」に含まれ、参照によりその全体を本明細書に組み入れる。 The determination of which compute node to use for the execution of each program copy or instance is based on any detailed settings and / or requirements specified in the request or otherwise specified in the program and / or associated user. This may be done in a variety of ways, including based (for example, during registration). For example, when a preferred and / or necessary resource condition for execution of a program instance is determined (eg, memory and / or storage, CPU type, cycle or other performance metric, network capacity, platform type, etc.) The determination of a computing node suitable for executing a program instance may be based at least in part on whether the computing node has sufficient resources available to satisfy those resource conditions. is there. Additional details regarding running and configuring a program on a program execution service can be found in pending US patent application Ser. No. 11 / 395,463, filed Mar. 31, 2006, “Managing Execution of Programs by Multiple Computing Systems. Is incorporated herein by reference in its entirety.
いくつかの実施形態において、PESがユーザによる1つ以上の料金の支払いの交換にそのユーザのためにプログラムを実行する場合があるように、料金は、PESの使用に関連付けられる場合がある。例えば、いくつかの実施形態において、ユーザのプログラムを実行するために割り当てられた、いくつかの処理ユニットのうちの1つ以上、メモリの量、記憶装置の量、ネットワークリソースの量等に基づいて等、ユーザの代わりに1つ以上のプログラムを実行するために割り当てられたプログラム実行容量の量および/または種類に基づいて、料金がユーザに課金される場合がある。いくつかの実施形態において、料金は、例えば、CPU能力または性能、プラットフォームタイプ(例えば、32ビット、64ビット等)等に基づく等、プログラムを実行するために使用されたコンピューティングリソースの多様な特性等の他の因子に基づく場合がある。いくつかの実施形態において、料金は、サービスの使用あたりの価格、そのコンピューティングサービスが使用された時間単位あたりの価格、使用された記憶装置あたりの価格、受信および/または送信されたデータあたりの価格等のように、多様な使用因子のベースで課金される場合がある。少なくともいくつかの実施形態において、以下に詳細を記載するように、料金は、プログラムの実行に関する多様な特性等(例えば、実行の継続性、耐障害性等)、多様な他の因子に基づく場合がある。少なくともいくつかの実施形態において、PESのプロバイダは、サービスの多様な料金帯、種類および/またはレベル、あるいは複数のユーザの代わりにプログラムを実行するための機能のうちの1つ以上を提示する場合があり、いくつかのそのような実施形態において、多様な料金は、サービスの多様な料金帯、種類および/またはレベルに関連付けられる場合がある。加えて、例えば、第1の量のプログラム実行容量機能に対して第1の料金帯で料金を課金し(例えば、使用されているコンピューティングノードの指定された第1の閾値まで)、第2の量のプログラム実行容量機能に対して第2の料金帯(例えば、より低い価格帯)で料金を課金する(例えば、指定された第1の閾値から使用されているコンピューティングノードの指定された第2の閾値まで)等、料金帯は、PESによって提供される特定の種類の機能に対して使用される場合がある。プログラム実行サービスに関連する多様な料金に関する追加の詳細は、2007年12月21日付提出の係属中米国特許出願第11/963,331号、「Providing Configurable Pricing for Execution of Software Images」に含まれ、参照によりその全体を本明細書に組み入れる。 In some embodiments, the fee may be associated with the use of the PES so that the PES may execute a program for that user in exchange for payment of one or more fees by the user. For example, in some embodiments, based on one or more of several processing units, the amount of memory, the amount of storage, the amount of network resources, etc. assigned to execute the user's program Etc., a fee may be charged to a user based on the amount and / or type of program execution capacity allocated to execute one or more programs on behalf of the user. In some embodiments, the fee is various characteristics of the computing resources used to execute the program, such as based on CPU capability or performance, platform type (eg, 32 bit, 64 bit, etc.), etc. Or other factors. In some embodiments, the fee is the price per use of the service, the price per unit of time that the computing service was used, the price per storage device used, per data received and / or transmitted. There are cases where charges are made on the basis of various usage factors such as price. In at least some embodiments, as described in detail below, the fee is based on a variety of other factors, such as various characteristics of program execution (eg, continuity of execution, fault tolerance, etc.) There is. In at least some embodiments, the PES provider presents one or more of various tariffs, types and / or levels of services, or functions for executing programs on behalf of multiple users And in some such embodiments, the various charges may be associated with various charge bands, types and / or levels of services. In addition, for example, a charge for a first amount of program execution capacity functionality is charged in a first fee zone (eg, up to a specified first threshold of the computing node being used) and second Charge for a second rate zone (eg, lower price range) for the amount of program execution capacity functionality (eg, the specified compute node being used from the specified first threshold) The fee zone may be used for certain types of functions provided by the PES, such as (to a second threshold). Additional details regarding the various fees associated with the program execution service are included in pending US Patent Application No. 11 / 963,331, filed December 21, 2007, “Providing Configurable Pricing for Execution of Software Images”, by reference. The entirety of which is incorporated herein.
さらに、多様な他の種類の機能は、他の部分に詳細を記載するように、多様な実施形態においてPESによって提供され、使用される場合がある。 In addition, various other types of functions may be provided and used by the PES in various embodiments, as described in detail elsewhere.
図3は、複数のユーザのためにコンピューティングノードの群を管理する技法を実施するために適したシステムの例示的実施形態を例示する模式図である。具体的には、図3は、プログラム実行サービスの少なくともいくつかの機能を提供するために適したサーバコンピューティングシステム300、ならびにプログラム実行サービスのユーザによって使用される場合がある多様なクライアントコンピューティングシステム350、プログラム実行サービスによって使用される場合があるコンピューティングノード360、および他のコンピューティングシステム380を例示する。例示された実施形態において、サーバコンピューティングシステム300は、CPU305、多様なI/O構成要素310、記憶装置320、およびメモリ330を含む、構成要素を有する。例示されたI/O構成要素は、ディスプレイ311、ネットワーク接続312、コンピュータ可読媒体ドライブ313、および他のI/Oデバイス315(例えば、キーボード、マウス、スピーカ等)を含む。加えて、例示されたユーザコンピューティングシステム350は、CPU351、I/O構成要素352、記憶装置354、およびメモリ357を含む、サーバコンピューティングシステム300の構成要素と同様な構成要素を有する。他のコンピューティングシステム380およびコンピューティングノード360も各々、サーバコンピューティングシステム300に関して例示された構成要素のうちのいくつかまたは全てと同様な構成要素を含む場合があるが、そのような構成要素は、簡潔性のためにこの例には例示されない。
FIG. 3 is a schematic diagram illustrating an exemplary embodiment of a system suitable for implementing techniques for managing groups of computing nodes for multiple users. Specifically, FIG. 3 illustrates a server computing system 300 suitable for providing at least some functions of a program execution service, as well as various client computing systems that may be used by users of the program execution service. 350 illustrates a computing node 360 that may be used by a program execution service, and other computing systems 380. In the illustrated embodiment, the server computing system 300 has components that include a
プログラム実行サービスシステムマネージャモジュール340の実施形態は、メモリ330の中で実行中であり、ネットワーク390上から(例えば、インターネットおよび/またはワールドワイドウェブを介して、非公開セルラーネットワークを介して等)コンピューティングシステム350および380ならびにコンピューティングノード360と相互作用する。この例示的実施形態において、PESSM340は、PESSM340によって管理されるプログラム実行サービスと共に等、ユーザコンピューティングシステム350と相互作用している多様なユーザ(図示せず)による複数のコンピューティングノード360の使用を管理することに関する機能を含む。他のコンピューティングシステム350および380ならびにコンピューティングノード360は、PESSMとの相互作用の一部として多様なソフトウェアを実行している場合がある。例えば、ユーザコンピューティングシステム350は、他の部分に詳細を記載するように、多様な方式で1つ以上のコンピューティングノード360上でそれらのシステムのユーザの代わりにプログラムの実行を構成および/またはリクエストするため、ならびに多様な他の種類の動作を実施するため等、PESSM340と相互作用するために(例えば、ウェブブラウザまたは専門のクライアント側アプリケーションプログラムの一部として)メモリ357の中のソフトウェアを実行している場合がある。複数のユーザの代わりにプログラムを実行するための構成、実行および/または登録に関する情報322、コンピューティングノード群のプログラム実行容量修正に関する情報324(例えば、予め定義されたユーザ指定のトリガについての情報、ユーザからの動的に指定された容量修正命令についての情報、コンピューティングノード性能測定についての情報および指定されたトリガが満たされたかどうかの判定に関する他の情報、群に対する所望の、実際の、および公式記録のコンピューティングノード数の現在値等)、および特定のコンピューティングノード群の特定のプログラム実行容量修正の因果関係の帰属に関する情報326(例えば、発生する少なくともいくつかのイベントおよび群のコンピューティングノードに対する少なくともいくつかの変更をリストし、図2Bおよび他の部分に記載される様式に類似の様式等で、特定のイベントを特定の変更に関連付けることによって)等、PESSMモジュール340の機能に関する多様な情報は、記憶装置320に記憶される場合がある。 An embodiment of the program execution service system manager module 340 is executing in the memory 330 and is running on a network 390 (eg, via the Internet and / or the World Wide Web, via a private cellular network, etc.). Interaction with computing systems 350 and 380 and computing node 360. In this exemplary embodiment, the PESSM 340 enables the use of multiple computing nodes 360 by various users (not shown) interacting with the user computing system 350, such as with program execution services managed by the PESSM 340. Includes functions related to management. Other computing systems 350 and 380 and computing node 360 may be running a variety of software as part of their interaction with PESSSM. For example, the user computing system 350 may be configured and / or configured to execute programs on behalf of a user of those systems on one or more computing nodes 360 in various ways, as described in detail elsewhere. Run software in memory 357 to interact with PESSM 340 (eg, as part of a web browser or specialized client-side application program), such as to request and perform various other types of operations May have. Configuration for executing a program on behalf of a plurality of users, information 322 regarding execution and / or registration, information 324 regarding modification of program execution capacity of a group of computing nodes (for example, information regarding a predefined user-specified trigger, Information about dynamically specified capacity modification instructions from the user, information about computing node performance measurements and other information about determining whether a specified trigger has been met, desired, actual, and Information about the attribution of the causal relationship of a particular program execution capacity modification of a particular group of computing nodes (eg, computing of at least some events and groups that occur) Few for nodes A variety of information regarding the functionality of the PESSM module 340, such as by listing a number of changes and associating specific events with specific changes, such as in a manner similar to that described in FIG. 2B and elsewhere May be stored in the storage device 320.
PESSMモジュール340が、1つ以上のコンピューティングノード360の群上で1つ以上のプログラムを実行するというリクエスト(または他の指示)を受信した後、PESSMモジュール340は、群の1つ以上のコンピューティングノードを選択し、それらのコンピューティングノード360上でそれらのプログラムの実行を開始する。加えて、PESSMモジュール340はさらに、コンピューティングノード上で開始されたプログラムの実行を後で終了する、プログラムのうちの1つ以上を1つ以上の他のコンピューティングノード360またはコンピューティングシステム380に移行する等のために、コンピューティングノード360と相互作用する場合がある。コンピューティングノード360は、いくつかの物理的コンピューティングシステムおよび/または1つ以上の物理的コンピューティングシステム上で実行中のいくつかの仮想マシンを含む等、多様な実施形態において多様な形態を有する場合がある。いくつかの実施形態において、サーバコンピューティングシステム300およびコンピューティングノード360は、データセンタまたは共同設置されたコンピューティングシステムの他の群の一部の場合、または非公開ネットワークのコンピューティングノードの場合がある。加えて、いくつかの実施形態において、PESSMモジュール340は、コンピューティングシステム380が、他のユーザによる使用のためにコンピューティングノードを提供している1つ以上の第三者参加者によって提供される場合等、それらのコンピューティングシステム上の1つ以上のプログラムの実行を開始または終了するために1つ以上の他のコンピューティングシステム380と相互作用する場合がある。いくつかの実施形態において、PESSMモジュール340はさらに、または代わりに、プログラム実行サービス以外の1つ以上の種類のコンピューティング関係リソースまたはサービスに対するアクセスを管理する場合がある(例えば、持続的または一時的なデータ保管サービス、メッセージングサービス、データベースサービス等)。 After the PESSM module 340 receives a request (or other indication) to execute one or more programs on the group of one or more computing nodes 360, the PESSM module 340 receives the request from the group of one or more computing nodes 360. And start execution of the programs on those computing nodes 360. In addition, the PESSM module 340 further transfers one or more of the programs to one or more other computing nodes 360 or computing systems 380 that later terminate execution of the program initiated on the computing node. It may interact with computing node 360, such as for migration. The computing node 360 has various forms in various embodiments, such as including several physical computing systems and / or several virtual machines running on one or more physical computing systems. There is a case. In some embodiments, server computing system 300 and computing node 360 may be part of a data center or other group of co-located computing systems, or may be a computing node in a private network. is there. In addition, in some embodiments, the PESSM module 340 is provided by one or more third party participants whose computing system 380 is providing a computing node for use by other users. As such, it may interact with one or more other computing systems 380 to initiate or terminate execution of one or more programs on those computing systems. In some embodiments, the PESSM module 340 may additionally or alternatively manage access to one or more types of computing-related resources or services other than program execution services (eg, persistent or temporary). Data storage services, messaging services, database services, etc.).
加えて、プログラム実行サービス容量保守マネージャモジュール345の実施形態は、メモリ330の中で実行中であり、この実施形態においては、ネットワーク390上からコンピューティングノード360と相互作用する。具体的には、この例示的実施形態において、PESCMMモジュール345は、コンピューティングノード360のうちの1つ以上を監視またはこれらとの相互作用に関する機能を含み、コンピューティングノード群の現在の実際のプログラム実行容量を判定、および/またはコンピューティングノード群のいくつかまたは全てのコンピューティングノードに対応する現在の性能特性を判定する等、それらのコンピューティングノードの使用を追跡する。前述のように、そのような情報は、記憶装置320および/またはそれ以外の場所に記憶される場合があり、多様な実施形態においてモジュール340および345によって使用される場合がある。例えば、いくつかの実施形態において、モジュール345が、コンピューティングノードが障害を発生または利用不可能になったことを発見した場合(例えば、コンピューティングノードがコンピューティングノード群の一部として使用されていた後、コンピューティングノード群の一部として使用されるようにコンピューティングノードをプロビジョニングまたはそうでなければ開始している一部として等)、モジュール345は、利用不可能なコンピューティングノードを新しいコンピューティングノードと置換する動作を自動的に行う場合がある。他の実施形態において、そうではなく、モジュール345が代わりに別の情報源から、コンピューティングノード群の現在の実際のプログラム実行容量および/またはコンピューティングノード群のいくつかまたは全てのコンピューティングノードに対応する現在の性能特性についての情報を取得した場合、その情報を使用して、適切にコンピューティングノードのプログラム実行容量を維持する等、モジュール345はコンピューティングノードの監視のいくつかまたは全てを実施しない場合がある。 In addition, an embodiment of the program execution service capacity maintenance manager module 345 is executing in the memory 330 and in this embodiment interacts with the computing node 360 over the network 390. Specifically, in this exemplary embodiment, the PESCMM module 345 includes functions related to monitoring or interacting with one or more of the computing nodes 360, and the current actual program of the computing nodes. Track usage of the computing nodes, such as determining execution capacity and / or determining current performance characteristics corresponding to some or all of the computing nodes in the group. As mentioned above, such information may be stored in storage device 320 and / or elsewhere and may be used by modules 340 and 345 in various embodiments. For example, in some embodiments, module 345 finds that a computing node has failed or is unavailable (eg, the computing node is being used as part of a group of computing nodes). After that, module 345 provisions the computing node to be used as part of the computing node group, such as provisioning or otherwise starting the computing node), There is a case where an operation of replacing a wing node is automatically performed. In other embodiments, the module 345 is instead instead from another source to the current actual program execution capacity of the computing nodes and / or to some or all computing nodes of the computing nodes. Module 345 performs some or all of the compute node monitoring, such as maintaining the compute node's program execution capacity appropriately when it obtains information about the corresponding current performance characteristics May not.
コンピューティングシステム300、350および380ならびにコンピューティングノード360は、例示に過ぎず、本発明の範囲を限定することを意図するものではないことが理解される。コンピューティングシステムおよび/またはノードは各々、複数の相互作用しているコンピューティングシステムまたはデバイスを含み、コンピューティングシステム/ノードは、インターネット等の1つ以上のネットワークを通じて、ウェブを介して、または非公開ネットワークを介して(例えば、移動体通信ネットワーク等)を含む、例示されていない他のデバイスに接続される場合がある。より一般的には、コンピューティングノードまたは他のコンピューティングシステムは、デスクトップまたは他のコンピュータ、データベースサーバ、ネットワーク記憶装置および他のネットワークデバイス、PDA、移動電話、無線電話、ポケットベル、電子手帳、インターネット機器、テレビベースのシステム(例えば、セットトップボックスおよび/またはパーソナル/デジタルビデオレコーダ)、ならびに適切な通信能力を含む多様な他の消費者製品を含むがこれらに限定されない、記載の種類の機能と相互作用し、これらを実施する場合がある、ハードウェアまたはソフトウェアの任意の組み合わせを備える場合がある。加えて、例示されるモジュール340および/または345によって提供される機能は、いくつかの実施形態において、追加のモジュールに分散される場合がある。同様に、いくつかの実施形態において、モジュール340および/または345の機能のうちのいくつかは、提供されない場合がある、ならびに/もしくは、他の追加の機能が利用可能な場合がある。 It will be appreciated that computing systems 300, 350 and 380 and computing node 360 are exemplary only and are not intended to limit the scope of the invention. Each computing system and / or node includes a plurality of interacting computing systems or devices, the computing system / node being through one or more networks, such as the Internet, via the web, or privately. It may be connected to other devices not illustrated, including via a network (eg, a mobile communication network, etc.). More generally, a computing node or other computing system is a desktop or other computer, database server, network storage and other network devices, PDA, mobile phone, wireless phone, pager, electronic notebook, Internet Functions of the type described, including but not limited to equipment, television-based systems (eg, set-top boxes and / or personal / digital video recorders), and a variety of other consumer products including appropriate communication capabilities It may comprise any combination of hardware or software that may interact and implement these. In addition, the functionality provided by the illustrated modules 340 and / or 345 may be distributed to additional modules in some embodiments. Similarly, in some embodiments, some of the functions of modules 340 and / or 345 may not be provided and / or other additional functions may be available.
また、多様な項目は使用されている間はメモリまたは記憶装置に記憶されると例示されるが、これらの項目またはそれらの部分は、メモリの管理およびデータの整合性の目的で、メモリと他の記憶装置との間を転送される場合がある。代替として、他の実施形態において、ソフトウェアモジュールおよび/またはシステムのうちのいくつかまたは全ては、別のデバイス上のメモリの中で実行し、コンピュータ間の通信を介して例示のコンピューティングシステムと通信する場合がある。さらに、いくつかの実施形態において、システムおよび/またはモジュールのうちのいくつかまたは全ては、1つ以上のアプリケーション専用集積回路(ASIC)、標準集積回路、制御装置(例えば、適切な命令を実行することによって、マイクロコントローラおよび/または埋め込みコントローラを含む)、フィールドプログラマブルゲートアレイ(FPGA)、コンプレックスプログラマブルロジックデバイス(CPLD)等を含むがこれらに限定されない、少なくとも部分的にファームウェアおよび/またはハードウェア等、他の様式で実装または提供される場合がある。モジュール、システム、およびデータ構造のうちのいくつかまたは全てはまた、ハードディスク、メモリ、ネットワークまたは適切な接続を介して適切なドライブによって読み取られる携帯可能媒体品等のコンピュータ可読媒体上に記憶される場合がある(例えば、ソフトウェア命令または構造化されたデータとして)。システム、モジュール、およびデータ構造はまた、ワイヤレスベースおよびワイヤ/ケーブルベースの媒体を含む、多様なコンピュータ可読伝送媒体上で生成されたデータ信号として伝送される場合があり(例えば、搬送波、または他のアナログまたはデジタル伝播波の一部として)、多様な形態をとる場合がある(例えば、単一または多重アナログ信号の一部として、または複数の離散デジタルパケットまたはフレームとして)。そのようなコンピュータプログラム製品はまた、他の実施形態において他の形態をとる場合がある。したがって、本発明は、他のコンピュータシステム構成で実践される場合がある。 Also, although various items are illustrated as being stored in memory or storage while in use, these items or portions thereof may be stored in memory or other for purposes of memory management and data integrity. May be transferred to or from the storage device. Alternatively, in other embodiments, some or all of the software modules and / or systems execute in memory on another device and communicate with the exemplary computing system via communication between the computers. There is a case. Further, in some embodiments, some or all of the systems and / or modules are one or more application specific integrated circuits (ASICs), standard integrated circuits, controllers (eg, execute appropriate instructions). (Including microcontrollers and / or embedded controllers), field programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), etc., including but not limited to firmware and / or hardware, etc. May be implemented or provided in other ways. If some or all of the modules, systems, and data structures are also stored on a computer-readable medium, such as a hard disk, memory, network, or portable media product that is read by a suitable drive via a suitable connection (E.g., as software instructions or structured data). Systems, modules, and data structures may also be transmitted as data signals generated on a variety of computer readable transmission media including wireless and wire / cable based media (e.g., carrier waves, or other As part of an analog or digital propagation wave, it may take a variety of forms (eg, as part of a single or multiple analog signal, or as multiple discrete digital packets or frames). Such computer program products may also take other forms in other embodiments. Thus, the present invention may be practiced with other computer system configurations.
図4は、プログラム実行サービスシステムマネージャルーチン400の例示的実施形態のフロー図である。ルーチンは、ユーザのためにコンピューティングノードの群の使用を管理する際に支援する、ならびにいくつかの状況において他の種類の管理操作を実施する等、例えば、それぞれ図1Aおよび1BのPESSMモジュール110および180、および/または図3のPESSMモジュール340の実行によって提供される場合がある。この例示された実施形態において、ルーチン400は、複数のユーザの代わりにプログラムを実行するためのプログラム実行容量を提供する、プログラム実行サービスの使用の多様な態様を管理する。
FIG. 4 is a flow diagram of an exemplary embodiment of a program execution service
例示された実施形態において、ルーチンはブロック405で開始し、情報またはリクエストが受信される。ルーチンはブロック410に続き、受信されたリクエストまたは情報が、ユーザからのリクエスト等、コンピューティングノードの群上で1つ以上のプログラムの実行を開始することに関連するかを判定する。関連する場合、ルーチンはブロック415に続き、コンピューティングノード群のプログラム実行容量の所期の所望の量等(例えば、所望のコンピューティングノード数)、リクエストされたプログラム実行に関する情報、実行される1つ以上のプログラムに関する情報(任意選択)、および1つ以上のユーザ指定の容量修正トリガに関する情報(任意選択)を取得する。他の部分に記載するように、いくつかの実施形態において、ユーザは、多様な種類のコンピューティングノードのうちの1つ以上から選択する場合、および/または所望のコンピューティングリソースの多様な量および/または種類を指定する場合がある(例えば、処理ユニットタイプ/量、メモリ量、プラットフォーム仕様等)。ブロック420で、ルーチンは次いで、群で使用されるコンピューティングノードを選択し、ブロック425で、選択されたコンピューティングノードをプロビジョニングし、実行される1つ以上のプログラムの実行を任意選択的に開始することによって、それらの選択されたコンピューティングノードをユーザのために利用可能にすることを開始する。ルーチンはまた、群の選択されたコンピューティングノードの所望のプログラム実行容量を、群の初期の公式記録のプログラム実行容量として指定する。コンピューティングノードがユーザの代わりに使用するために利用可能である時、ユーザは、多様な様式で利用可能性が通知される場合、または他の実施形態において、コンピューティングノードは、ユーザによってさらに相互作用することなく、自動化された様式で操作する場合がある。ルーチンは次いでブロック430に続き、群に対する任意のユーザ指定のトリガを含む、コンピューティングノード群に関する情報を記憶する。
In the illustrated embodiment, the routine begins at
そうではなく、ブロック410でコンピューティングノードの群の実行を開始するというリクエストが受信されなかったと判定された場合、ルーチンは代わりにブロック440に続き、既存のコンピューティングノード群のプログラム実行容量を修正することに関するリクエストが受信されたかどうかを判定する。受信された場合、ルーチンはブロック445に続き、指示された既存のコンピューティングノード群に対してプログラム実行容量を修正することに関する動的に指定されたユーザ命令を受信し、記憶する。例示された実施形態において、ユーザ命令は、現在の総計期間中に発生する他の可能なプログラム実行容量修正リクストと総計され、ブロック465〜477に関して等、調和アクティビティが実施される次の時間中にさらに処理される場合があるが、他の実施形態において、少なくともいくつかのそのようなユーザ指定の修正リクエストは、代わりに即時に実施される場合がある。
Otherwise, if it is determined at
その代わりにブロック440で、コンピューティングノードの群のプログラム実行容量を修正するというリクエストが受信されなかった場合、ルーチンは代わりにブロック460に続き、そのようなコンピューティングノード群のプログラム実行容量修正リクエストの総計の期間の最後等に、1つ以上のコンピューティングノード群のプログラム実行容量に関する定期的または再帰的調和アクティビティを現在実施するかどうかを判定する。実施する場合、ルーチンはブロック465に続き、調和アクティビティを現在実施する1つ以上のコンピューティングノード群を判定し(例えば、総計期間が終了し、1つ以上の動的プログラム実行容量修正が総計されているコンピューティングノード群)、ブロック467で、先頭から開始して、次の判定されたコンピューティングノード群を選択する。ルーチンは次いでブロック470に続き、再帰的容量調和アクティビティを実施し、そのようなルーチンの一例は、図5に関して詳細に記載する。ルーチンは次にブロック475に続き、ブロック470で実施されたプログラム実行容量修正に対する因果関係の帰属に関するアクティビティを実施するルーチンを実行し、そのようなルーチンの一例は、図6に関して詳細に記載する。ブロック475の後、ルーチンはブロック477に続き、処理することが判定されたコンピューティングノード群がさらに存在するかを判定し、存在する場合、ルーチンはブロック467に続き、次のそのように判定されたコンピューティングノード群を選択する。
If, instead, at
その代わりに、ブロック460で、1つ以上のコンピューティングノード群のプログラム実行容量に関して定期的または再帰的調和アクティビティを現在実施しないと判定される場合、ルーチンは代わりにブロック480に続き、1つ以上の他の指示された操作を任意選択的に実施する。そのような操作は、例えば、単一のコンピューティングノード上で単一のプログラムを実行する等、他の種類のプログラム実行を実施することに関するユーザリクエスト(提供されるプログラム実行サービスがそのような他のプログラム実行の種類を提供する場合)、即時に実施されるユーザ指定のプログラム実行容量修正リクエスト(例えば、コンピューティングノードが正しく操作していない場合等、特定の指示されたコンピューティングノードの実行を終了するというユーザ命令)、追加のトリガを指定、または指示されたコンピューティングノード群の構成情報を修正するというユーザリクエスト、再帰的調和アクティビティに追加またはその代わりに等、指示されたコンピューティングノード群に対して即時に調和アクティビティを実施するというユーザリクエスト(例えば、調和アクティビティがユーザリクエスト時のみに実施される場合)、ユーザが関連する1つ以上のコンピューティングノード群に関する多様なステータス情報を取得するというユーザリクエスト、加入、登録、または支払い操作のように、ユーザの管理に関するアクティビティを実施するというリクエスト等、のうちの1つ以上を含む場合がある。
Instead, if at
ブロック430、445、または480の後、または代わりにブロック477で追加の判定されたコンピューティングノード群が利用可能ではないと判定された場合、ルーチンはブロック485に続き、ユーザに提供されたプログラム実行機能に基づいて1人以上のユーザに課金および/またはユーザから集金する等、ブロック405で受信された情報またはリクエストに基づいてまたはその他開始される(例えば、定期的に)任意のユーザ請求(または払い戻し)アクティビティを任意選択的に実施する。ルーチンはさらに、必要に応じて、定期的にハウスキーピング操作を任意選択的に実施する場合がある。
If after
ブロック485の後、ルーチンは、ブロック495に続き、ルーチンを終了する明示的な指示まで等、継続するかどうかを判定する。継続すると判定された場合、ルーチンはブロック405に戻り、そうでない場合はブロック499に続いて終了する。ユーザが特定のリクエストされた操作を実施することが認証されているかの判定、いくつかの種類のリクエストされた操作に対してユーザから支払いを即時に取得する等、追加の種類のアクティビティは、いくつかの実施形態および状況において実施される場合があることが理解される。加えて、ユーザリクエストおよび他の操作は例示された実施形態において、特定のコンピューティングノード群および特定の関連ユーザに特定の様式で実施されるように指示されるが、他の実施形態において、いくつかまたは全てのそのような操作は、代わりに、単一のユーザに関連する複数のコンピューティングノード群へ、および/または1つ以上のコンピューティングノード群に関連する複数のユーザから等、より一般的に適用される場合がある。
After
図5は、再帰的容量調和ルーチン500の例示的実施形態のフロー図である。ルーチンは、図4のルーチン400のブロック470から開始される場合があるように、例えば、それぞれ図1Aおよび1BのPESSMモジュール110および180、ならびに/または図3のPESSMモジュール340によって提供される場合がある。
FIG. 5 is a flow diagram of an exemplary embodiment of a recursive
例示された実施形態において、ルーチンはブロック505で開始し、容量調和アクティビティが実施される予定の現在選択されたコンピューティングノード群の指示を取得する。ブロック515で、ルーチンは次に、選択されたコンピューティングノード群に実施された先行の調和アクティビティに基づいて(または、これが実施される最初の調和アクティビティである場合は、選択されたコンピューティングノード群の初期の公式記録のプログラム実行容量)、および/またはPES容量保守マネージャモジュール(例えば、図7に関して詳細に記載のような)によって実施される場合がある、公式記録のプログラム実行容量に対する後続の修正に基づいて等、選択されたコンピューティングノード群の公式記録のプログラム実行容量についての情報を呼び出す。ルーチンは次いでブロック520および525に続き、それぞれ、選択されたコンピューティングノード群の現在の実際のプログラム実行容量および現在所望のプログラム実行容量を判定する。現在の実際のプログラム実行容量の判定は、例えば、選択されたコンピューティングノード群を監視することの一部として、PES容量保守マネージャモジュールによって以前に記憶された情報を呼び出すことを含む場合があるが、他の実施形態において、ルーチン500は、現在の実際の容量を動的に判定する場合がある(例えば、PES容量保守マネージャモジュールまたは他の監視している情報源にその情報を提供するように動的にリクストすることによって)。
In the illustrated embodiment, the routine begins at
ブロック525の現在所望のプログラム実行容量の判定は、例えば、調和アクティビティに対応する現在の総計期間中に選択されたコンピューティングノード群の関連ユーザから受信された任意の動的に指定された容量修正命令に関する情報(例えば、図4のブロック445に関する前述のように)、および現在の総計期間中に満たされていたことが以前に判定されていた選択されたコンピューティングノード群の任意のユーザ指定のトリガに関する情報を呼び出すことを含む場合がある。代替として、いくつかの実施形態において、ルーチンは代わりに、選択されたコンピューティングノード群の任意のユーザ指定のトリガが、現在の総計期間中に現在満たされている、および/または以前に満たされていたかどうかを現在判定するために、選択されたコンピューティングノード群に対して判定された性能特性情報を呼び出す場合がある(例えば、PES容量保守マネージャモジュールによって選択されたコンピューティングノード群を監視することの一部として以前に記憶されていた情報、またはその情報を提供するようにPES容量保守マネージャモジュールまたは他の監視している情報源にリクエストすることによって動的に取得された情報)。多様な情報が呼び出された後、現在所望のプログラム実行容量は、任意のそのような総計された容量修正が行われた後の結果の所望のプログラム実行容量を判定するために、他の部分に詳細を記載するように、1つ以上のリクエストされたプログラム実行容量修正を総計することによって判定される場合がある。
The determination of the currently desired program execution capacity of
ブロック525の後、ルーチンはブロック530に続き、現在公式の容量を現在所望の容量に調整するように、選択されたコンピューティングノード群の現在の実際のプログラム実行容量、所望のプログラム実行容量、および公式記録のプログラム実行容量を調和するために、選択されたコンピューティングノード群に行われる実際の変更を判定する。ルーチンは次いで、ブロック535に続き、修正された選択されたコンピューティングノード群によって提供される現在所望のプログラム実行容量を、選択されたコンピューティングノード群の更新された公式記録のプログラム実行容量として指定し、さらに、ブロック530で判定されたプログラム実行容量修正を開始する。ブロック535の後、ルーチンはブロック599に続き、戻る。
After
図6は、容量修正帰属ルーチン600の例示的実施形態のフロー図である。ルーチンは、図4のルーチン400のブロック475から開始される場合がある等、例えば、それぞれ図1Aおよび1BのPESSMモジュール110および180、ならびに/または図3のPESSMモジュール340によって、提供される場合がある。
FIG. 6 is a flow diagram of an exemplary embodiment of a capacity
例示された実施形態において、ルーチンはブロック605で開始し、容量修正帰属アクティビティが実施される現在選択されたコンピューティングノード群の指示を取得する。ブロック625で、ルーチンは次いで、選択されたコンピューティングノード群に対して実施された先行の調和アクティビティ等、先行の時間以降に発生していたプログラム実行容量の利用可能性の変更についての情報を識別する。変更情報の識別は、例えば、選択されたコンピューティングノード群を監視することの一部として、PES容量保守マネージャモジュールによって以前に記憶された情報を呼び出すことを含む場合があるが、他の実施形態において、ルーチン600は、情報を動的に判定する場合がある(例えば、PES容量保守マネージャモジュールまたは他の監視している情報源にその情報を提供するように動的にリクストすることによって)。
In the illustrated embodiment, the routine begins at
ブロック625の後、ルーチンはブロック630に続き、任意のそのような容量の利用可能性の変更が発生していたかを判定し、発生していなかった場合はブロック699に続く。発生していた場合、ルーチンはブロック635に続き、選択されたコンピューティングノード群に対して実施された先行の調和アクティビティ等、先行の時間以降に発生していたプログラム実行容量修正リクエストイベントについての情報を識別する。イベント情報の識別は、例えば、図4および5に関して詳細を記載したように、選択されたコンピューティングノード群の機能を提供する一部として、PESシステムマネージャモジュールによって以前に記憶された情報を呼び出すことを含む場合がある。ブロック640で、ルーチンは次いで、イベントの種類に基づいて等、対応する利用可能性の変更を直接発生する識別されたイベントのうちのいずれかを判定する(例えば、利用不可能なコンピューティングノードを置換する自動化されたシステム操作、即時の対応応答を指定する受信されたユーザ命令等)。
After
ブロック640の後、ルーチンはブロック645に続き、先頭から開始して、ブロック625で識別された次の利用可能性の変更を選択する。ブロック650で、ルーチンは次いで、この変更がブロック640で判定された個別のイベントのうちの1つに直接帰属可能であるかを判定し、可能である場合、選択された容量の利用可能性の変更の原因としてそのイベントを記録する。可能でない場合、ブロック650のルーチンは、選択された容量の利用可能性の変更の原因をブロック640で判定されていない他の識別されたイベントの組み合わせとして結論付ける。ブロック660において、ルーチンは次いで、容量の利用可能性の変更がさらに存在するかを判定し、存在する場合、ブロック645に戻り、次のそのような容量の利用可能性の変更を選択する。存在しない場合、ルーチンはブロック699に続いて、戻る。
After block 640, the routine continues to block 645 and selects the next availability change identified at
図7は、プログラム実行サービス容量保守マネージャルーチン700の例示的実施形態のフロー図である。ルーチンは、コンピューティングノード群から利用可能な実際のプログラム実行容量を判定することを含む、ユーザのためにコンピューティングノードの群の使用を監視する際に支援する等、例えば、それぞれ図1Aおよび1BのPESCMMモジュール115および160、ならびに/または図3のPESCMMモジュール345の実行によって提供される場合がある。この例示された実施形態において、ルーチン700は、複数のユーザの代わりにプログラムを実行するためのプログラム実行容量を提供するプログラム実行サービスと共に操作するが、他の実施形態において、ルーチン700の機能のいくつかまたは全ては、他の様式で提供される場合がある。
FIG. 7 is a flow diagram of an exemplary embodiment of a program execution service capacity
例示された実施形態において、ルーチンはブロック705で開始し、継続的またはそうでなければ反復様式等、1つ以上のコンピューティングノード群のコンピューティングノードについての情報の収集を開始する指示が受信され、一方で本明細書には例示されないが、いくつかの実施形態において、他のモジュールおよび/またはルーチンは、対象の特定のコンピューティングノード群に関して等、対象の特定の情報を生成し、提供するように、ルーチン700に動的にリクエストする場合がある。ブロック705において、ルーチンは、コンピューティングノード群の総計情報を生成する際に後で使用するために、これらのコンピューティングノードが属するコンピューティングノード群の指示を含む、1つ以上のそのようなコンピューティングノードの性能特性情報を収集する。情報は、特定のコンピューティングノードまたは関連モジュール(例えば、仮想マシンコンピューティングノードの関連VMマネージャ構成要素)に情報を提供するようにリクエストすることによって情報をプルすることによって、そのようなコンピューティングノードおよび/または関連構成要素が情報をルーチン700にプッシュすることによって(例えば、定期的、コンピューティングノードをシャットダウンまたは利用不可能にさせる検出されたエラー状態等の所定の種類のイベント時等)、特定のコンピューティングノードによるネットワークトラフィックおよび/または個別のリソース使用量を監視することによって等を含む、多様な様式で収集される場合がある。
In the illustrated embodiment, the routine begins at
ルーチンは次いでブロック710に続き、1つ以上の選択されたコンピューティングノード群のために総計性能特性情報を判定し、全てのコンピューティングノード群、個別のコンピューティングノード情報がちょうど収集されたコンピューティングノード群、総計性能特性情報がリクエストされている、または最近生成されていないコンピューティングノード群、個別のコンピューティングノード情報がコンピューティングノード群のコンピューティングノードの各々に利用可能であるコンピューティングノード群等のために等、その判定された情報を後で使用するために記憶する。その総計性能特性情報は、群のコンピューティングノードに関して部分的情報だけが利用可能である時、利用可能ではない個別の性能特性情報を補間または推定すること等を含め、多様な様式で生成される場合がある。加えて、収集および/または総計される特定の性能特性情報は、所定の実施形態において全てのコンピューティングノード群のための所定の種類の情報を必ず収集する、特定のコンピューティングノード群の判定されたトリガに指定された条件に基づいて所定の種類の情報を収集する等、多様な様式で変動する場合がある。さらに、ブロック705〜785は、この例において、順次様式で実施されると例示されるが、多様なブロックは、いくつかの実施形態においてそうではなく他の様式で実施される場合があることが理解される。例えば、いくつかの実施形態において、ブロック705の情報収集アクティビティは、継続ベースまたはほぼ継続ベースで実施される場合があるが、ブロック710および/または他のブロックの総計情報生成は、定期的にのみ実施される場合がある。
The routine then continues to block 710 to determine aggregate performance characteristic information for one or more selected computing nodes and compute all computing nodes, individual computing node information just collected. Nodes, computing node groups for which aggregate performance characteristic information has been requested or not recently generated, and computing node groups in which individual computing node information is available to each of the computing nodes in the computing node group The determined information is stored for later use, such as for later. That aggregate performance characteristic information is generated in a variety of ways, including interpolating or estimating individual performance characteristic information that is not available when only partial information is available for a group of computing nodes. There is a case. In addition, the specific performance characteristic information collected and / or aggregated is determined for a particular computing node group that necessarily collects a predetermined type of information for all computing node groups in a given embodiment. There are cases where the information fluctuates in various ways, such as collecting a predetermined type of information based on the conditions specified in the trigger. Further, although blocks 705-785 are illustrated in this example as being implemented in a sequential manner, various blocks may be implemented in other manners instead in some embodiments. Understood. For example, in some embodiments, the information gathering activity of
ブロック710の後、ルーチンはブロック715に続き、現在利用可能な群のコンピューティングノードの現在数、および/またはコンピューティングノード群のプログラム実行容量の1つ以上の他の測定値を反映し、後で使用するために判定された情報を記憶する等、1つ以上のコンピューティングノード群の各々のために現在の実際のプログラム実行容量情報を判定し、記憶する。本明細書には例示されないが、いくつかの実施形態および状況において、ルーチンはさらに、コンピューティングノード群のために判定された現在の実際のプログラム実行容量を反映するように、コンピューティングノード群の対応する公式記録のプログラム実行容量を即時に更新する場合があるが、他の実施形態において、公式記録のプログラム実行容量を更新するには、次の対応する群の調和アクティビティまで待機する。
After
ブロック720で、ルーチンは次いで任意選択的に、任意のコンピューティングノード群の満たされていた任意のコンピューティングノード群の任意の容量修正トリガを判定する(例えば、ブロック705で収集され、および/またはブロック710で総計された性能特性情報に基づいて、および/またはブロック715で判定された実際のプログラム実行容量情報に基づいて)が、他の実施形態において、そのようなトリガを満たしたという判定は、そうではなく、図5に関して詳細を説明する対応する調和アクティビティに関して等、総計期間の最後に実施される場合がある。任意のトリガが満たされたと判定された場合、そのような満たされたトリガについての情報は、後で使用するために記憶される。いくつかの実施形態および状況において、特定のトリガを満たすとさらに、関連のコンピューティングノード群の即時プログラム実行容量修正を開始する場合があり、そのような場合、そのようなプログラム実行容量修正動作が開始される場合があり、ルーチンはさらに、図6のルーチン600に関して後で使用するため等、その満たされたトリガをそのプログラム実行容量修正動作に連結する因果関係情報を記録する場合がある。
At
同様な様式において、ブロック725のルーチンは、任意のコンピューティングノード群のうちの任意のコンピューティングノードが、コンピューティングノード群のために利用可能になるように開始されたが、開始が失敗または指定期間内(例えば、10分)に完了しなかったかどうかを判定する。その場合、ルーチンの例示された実施形態は、任意のそのようなコンピューティングノードのための置換コンピューティングノードの即時提供を開始し、ルーチンはさらに、開始されたコンピューティングノードの利用不可能を開始された置換アクティビティの原因として連結する因果関係情報を記録する場合がある。他の実施形態において、そのような置換アクティビティは、代わりに即時様式で実施されない場合があり(例えば、代わりに、プログラム実行容量を修正する他のリクエストと総計される場合がある)、および/またはそうではなく図4のルーチン400によって実施される場合がある。加えて、そのような利用不可能なコンピューティングノードのための置換アクティビティを開始することの一部として、ルーチンはさらに、利用不可能なコンピューティングノードを終了するよう動作を行う場合がある(例えば、まだ実行中であるが、応答しない場合)。
In a similar manner, the routine in
類似の様式において、ブロック730のルーチンは、コンピューティングノード群の一部として以前に使用中であったが、現在障害を発生またはそうでなければ利用不可能になっているコンピューティングノード群のうちの任意のコンピューティングノードに置換コンピューティングノードを即時に提供することを任意選択的に開始し、その場合、ルーチンは、開始された置換アクティビティの原因として、そのコンピューティングノードの利用不可能性を連結する因果関係情報をさらに記録する場合がある。他の実施形態において、そのような置換アクティビティは、そうではなく直後の様式において実施されない場合があり(例えば、そうではなく、プログラム実行容量を修正するための他のリクエストと共に総計される場合がある)、および/または図4のルーチン400によって実施される場合があり、および/または特定のコンピューティングノード群のプログラム実行容量に対する即時変更を自動的に開始することができる、他の種類の自動化された判定が実施される場合がある。加えて、利用不可能なコンピューティングノードの置換アクティビティを開始することの一部として、ルーチンはさらに、利用不可能なコンピューティングノードを終了する動作を行う場合がある(例えば、まだ稼動中であるが、応答しない場合)。さらに、他の部分に詳細を記載するように、ルーチンは、いくつかの実施形態において、ブロック725および/または730に関して、関連のユーザが課金される期間、置換アクティビティを実施する望ましさに影響を与える場合がある、次の調和アクティビティの実施が予定されているまでの時間量等、置換アクティビティを即時に実施するかどうかを判定する時に他の因子を検討する場合がある。
In a similar manner, the routine of
ブロック730の後、ルーチンは、ブロック785に続き、必要に応じて記憶された情報を更新することを含む、任意のハウスキーピング操作を任意選択的に実施する。ブロック785の後、ルーチンは、ブロック795に続き、明示的な終了指示が受信されるまで等、継続するかどうかを判定する。継続すると判定された場合、ルーチンはブロック705に戻り、そうでない場合はブロック799に続いて終了する。ルーチン700に関して多様なアクティビティは、この実施形態において、ルーチン400を実施するモジュールとは異なるモジュールによって実施されると例示されるが、他の実施形態において、2つのルーチンの機能のいくつかまたは全ては、単一のモジュールによって実施される、またはそうでなければ組み合わせられる場合がある。
After
いくつかの実施形態において、上述のルーチンによって提供される機能は、より多くのルーチンに分割、またはより少ないルーチンに統合等、代替の方式において提供される場合があることが理解される。同様に、いくつかの実施形態において、例示されたルーチンは、他の例示されたルーチンが、その代わりにそれぞれそのような機能を欠落または含む時、または提供される機能の量が変更される時等、記載よりも多いまたは少ない機能を提供する場合がある。加えて、多様な操作は、特定の様式(例えば、順次または並列)において、および/または特定の順序で、実施されると例示される場合がある一方で、当業者は、他の実施形態において、操作は他の順序で、および他の様式において実施される場合があることを理解する。当業者はまた、上述のデータ構造は、単一のデータ構造を複数のデータ構造に分割させることによって、または複数のデータ構造を単一のデータ構造に統合させることによって等、異なる様式において構造化される場合があることも理解する。同様に、いくつかの実施形態において、例示されたデータ構造は、他の例示されたデータ構造が、その代わりにそれぞれそのような情報を欠落または含む時、または記憶される情報の量または種類が変更される時等、記載よりも多いまたは少ない情報を記憶する場合がある。 It will be appreciated that in some embodiments, the functionality provided by the routines described above may be provided in alternative ways, such as splitting into more routines or integrating into fewer routines. Similarly, in some embodiments, the illustrated routines are used when other illustrated routines instead lack or include such functions, respectively, or when the amount of functions provided is changed. Etc., may provide more or less functions than described. In addition, while various operations may be illustrated as being performed in a particular manner (eg, sequentially or in parallel) and / or in a particular order, those of ordinary skill in the art will appreciate in other embodiments It will be appreciated that the operations may be performed in other orders and in other manners. Those skilled in the art also can structure the data structures described above in different ways, such as by dividing a single data structure into multiple data structures or by consolidating multiple data structures into a single data structure. Also understand that it may be. Similarly, in some embodiments, the illustrated data structure may be different when other illustrated data structures instead lack or contain such information, respectively, or the amount or type of information stored. More or less information than the description may be stored, such as when it is changed.
第1節。ユーザに提供されるプログラム実行容量における動的な修正の因果関係を判定するための、プログラム実行サービスの構成されたコンピューティングシステムのための方法であって、
プログラム実行サービスの構成されたコンピューティングシステムの制御下であって、ユーザに課金された料金と引き換えに、かつ、多様なユーザの各々について、複数のリモートユーザのプログラムを実行するように構成可能な複数のコンピューティングノードをプログラム実行サービスが提供する、当該制御下において、
ユーザの指示されたプログラムの実行で使用するための初期の望ましいコンピューティングノードの数を指定し、かつ、ユーザが使用するために提供されているコンピューティングノードの数に対して自動化された修正を後で開始するために使用するための複数の数修正トリガを指定する、ユーザからの情報を受信することであって、数修正トリガの各々は、数修正トリガが満たされるかどうかを判別するために使用するための1つ以上の基準を含み、かつ、数修正トリガが満たされる場合にリクエストされる指定されたコンピューティングノードの数変更を含む、受信することと、
ユーザの指示されたプログラムを実行するために使用するための多様な複数のコンピューティングノードのユーザのために群を自動的に判別することであって、複数のコンピューティングノードは初期の望ましいコンピューティングノードの数であり、1回目で、ユーザが使用するための複数のコンピューティングノードを提供する、判別することと、
ユーザからの命令に応答して、群のうちのコンピューティングノードの各々において指示されたプログラムのコピーの実行を開始することと、
期間の間、これらのコンピューティングノードの操作から性能測定基準を判定するために、群のうちのコンピューティングノードを自動的に監視することと、ユーザによって指定された数修正トリガのうちの少なくとも1つが、判定された性能測定基準に基づいて満たされることを自動的に判別することと、
期間の間、各々、群のうちのコンピューティングノードの数変更について動的に指定されたリクエストを示す、ユーザからの1つ以上の数変更命令を受信することと、
ユーザのためにプログラムを実行するために、2回目で実際に利用可能な群のうちのコンピューティングノードの数を反映する2回目について実際のコンピューティングノード量を自動的に判別することであって、2回目の判定された実際のコンピューティングノード量は、期間の間の群のうちのコンピューティングノードの利用可能性に対する複数の変更に少なくとも部分的に基づく、1回目の初期の望ましいコンピューティングノードの数とは別であり、複数の利用可能性の変更の少なくともいくつかは、ユーザが課金される1つ以上の関連付けられた料金を有する、判別することと、
利用可能性に対する複数の変更のうちの少なくとも1つの各々について、満たされると判定される少なくとも1つの数修正トリガのうちの1つまたはユーザからの1つ以上の数変更命令のうちの1つのいずれかである利用可能性の変更の単一の原因を自動的に結論付けることと、
単一の原因が自動的に結論付けられていない複数の利用可能性の変更のうちの少なくとも1つの他の変更の各々について、この少なくとも1つの他の利用可能性の変更は、前記少なくとも1つの利用可能性の変更とは別であり、互いに独立しており、満たされると判定される少なくとも1つの数修正トリガのうちの1つ以上を含み、かつ、ユーザからの1つ以上の数変更命令のうちの少なくとも1つを含む、利用可能性の変更へ、複数の可能性のある原因の組み合わせを自動的に結論付けることと、
少なくともいくつかの利用可能性の変更のための関連付けられた料金が、ユーザに帰責されることを可能にするように、少なくとも1つの利用可能性の変更の各々について結論付けられる単一の原因と、少なくとも1つの他の利用可能性の変更の各々についての複数の原因の結論付けられる組み合わせとの指示を提供することと、によって、1回目から後の2回目への期間、群のうちのコンピューティングノードを自動的に管理することと、を含む、方法。
Under the control of a computing system configured with a program execution service, it can be configured to execute a plurality of remote user programs for each of a variety of users in exchange for a fee charged to the user. Under the control where the program execution service provides a plurality of computing nodes,
Specifies the initial desired number of compute nodes for use in the execution of the user's indicated program and makes automated corrections to the number of compute nodes provided for use by the user Receiving information from a user specifying a plurality of number correction triggers for use to start later, each of the number correction triggers to determine whether the number correction triggers are met Receiving, including one or more criteria for use in, and including a change in the number of designated computing nodes requested when a number correction trigger is met;
Automatically determining a group for a user of a variety of computing nodes for use in executing a user's indicated program, wherein the computing nodes are initially desired computing Determining the number of nodes, at a first time, providing a plurality of computing nodes for use by a user;
In response to an instruction from a user, initiating execution of a copy of the indicated program at each of the computing nodes of the group;
Automatically monitoring computing nodes in the group and determining at least one of the number modification triggers specified by the user to determine performance metrics from the operation of these computing nodes during the period Automatically satisfying that is satisfied based on the determined performance metric,
Receiving one or more number change instructions from a user, each indicating a dynamically specified request for a change in the number of computing nodes in the group, for a period of time;
Automatically determining the actual amount of computing nodes for the second time, which reflects the number of computing nodes in the group that is actually available for the second time, in order to execute the program for the user. The first determined actual compute node amount is based at least in part on a plurality of changes to the availability of computing nodes in the group during the period of time. Determining that at least some of the plurality of availability changes have one or more associated charges for which the user is charged;
For each of at least one of the plurality of changes to availability, any one of at least one number modification trigger determined to be satisfied or one of one or more number change instructions from a user Automatically concludes a single cause of availability changes,
For each of at least one other change of the plurality of availability changes for which a single cause has not been automatically concluded, the at least one other availability change is said at least one One or more number change instructions from the user, including one or more of at least one number correction trigger that is separate from the availability change, independent of each other and determined to be satisfied Automatically concludes a combination of multiple possible causes into an availability change that includes at least one of the following:
A single cause to conclude for each of the at least one availability change to allow the associated fee for at least some availability changes to be attributed to the user Providing an indication of a plurality of causal combinations for each of the at least one other availability change, from a first time to a second time period, Automatically managing computing nodes.
第2節。複数のユーザのうちの1人について、2回目で判定された実際のコンピューティングノード数は、満たされると判定される少なくとも1つの数修正トリガのうちの1つ以上と、1人のユーザからの1つ以上の数変更命令のうちの少なくとも1つとの各々から、1人のユーザの群のためのコンピューティングノードの数のリクエストされた増加に部分的に基づいて、1回目について、初期の望ましいコンピューティングノード数よりも多く、1人のユーザの2回目の実際のコンピューティングノード数を自動的に判別することは、1つ以上の満たされた数修正トリガと、1人のユーザからの少なくとも1つの数変更命令との、リクエストされた増加の総計に基づいて、1人のユーザの群のコンピューティングノードの数を増加させるために行う単一の総計された修正を判別することを含み、1人のユーザの群のうちのコンピューティングノード数を増加させるための判定された単一の総計された修正は、1人のユーザの群の少なくとも1つの他の利用可能性の変更のうちの1つであり、1つ以上の満たされた数修正トリガおよび1人のユーザからの少なくとも1つの数変更命令のうちのどれも、1人のユーザの群について、少なくとも1つの利用可能性の変更のいずれの単一の原因としても結論付けられず、1人のユーザの群の少なくとも1つの他の利用可能性の変更の各々についての複数の可能性のある原因の組み合わせは、期間の間、1人のユーザのコンピューティングノード群における利用可能性の変更について識別され、かつ、少なくとも1つの利用可能性の変更のうちの1つの単一の原因として結論付けられない全ての可能性のある原因を含む、第1節に記載の方法。
第3節。プログラム実行サービスは、リモートユーザの各々が、1つ以上のネットワークにおいてクライアントコンピューティングデバイスからの命令を提供するように、ネットワークでアクセス可能なサービスであり、1人のユーザの群の関連付けられた料金による少なくともいくつかの利用可能性の変更は、1人のユーザの群のうちのコンピューティングノードの数における1つ以上の増加を含み、1人のユーザは、1回目で1人のユーザが使用するための複数のコンピューティングノードを提供するための第1の料金を支払い、1人のユーザの群の1つ以上の数の増加の一部として提供された各追加のコンピューティングノードの1つ以上の個別の第2の料金を支払う、第2節に記載の方法。
第4節。ユーザに提供されたプログラム実行容量における動的修正の因果関係を判別するためのコンピュータで実装可能な方法であって、方法は、
複数のユーザが使用するためのプログラム実行サービスを提供するように構成される1つ以上のコンピューティングシステムの制御下であって、プログラム実行サービスのユーザのプログラムを実行するように構成可能な複数のコンピューティングノードをプログラム実行サービスが有する、当該制御下において、
プログラム実行サービスの第1のユーザの代わりに、1つ以上のソフトウェアプログラムを実行するための初期の望ましいプログラム実行容量の指示を受信することと、
第1のユーザに提供されているプログラム実行容量に対する自動化された修正を後で開始するために使用するための複数の容量修正トリガを判別することであって、容量修正トリガの各々は、容量修正トリガが満たされるかどうかを判別するために使用するための1つ以上の基準を含み、かつ、容量修正トリガが満たされる場合にリクエストされる指定された種類のプログラム実行容量修正を含む、判別することと、
第1のユーザの初期の望ましいプログラム実行容量を提供するために使用するための多様な複数のコンピューティングノードの複数の第1の群を自動的に判別することと、1回目で利用可能な第1の群のうちのコンピューティングノードに、第1のユーザのために1つ以上のソフトウェアプログラムを各々実行させることと、
1回目と後の2回目との間の期間において生じ、かつ、各々、第1の群の複数のコンピューティングノードによって提供されているプログラム実行容量の修正を生じさせることができる、複数の独立したイベントを自動的に識別することであって、複数のイベントは、満たされると判定される指定された容量修正トリガのうちの少なくとも1つを含む、識別することと、
2回目に第1の群のうちのコンピューティングノードから第1のユーザへ利用可能な実際のプログラム実行容量を自動的に判別することであって、2回目の実際のプログラム実行容量は、1回目と2回目との間の期間に生じた第1の群の1つ以上のコンピューティングノードの利用可能性に対する1つ以上の変更に少なくとも部分的に基づいて、1回目に第1のユーザに提供された望ましいプログラム実行容量とは別である、判別することと、
第1の群の1つ以上のコンピューティングノードの利用可能性の変更の各々について、利用可能性の変更の原因として識別されたイベントのうちの1つ以上を自動的に結論付けることであって、利用可能性の変更のうちの少なくとも1つは、互いに独立しており、かつ、満たされると判定される少なくとも1つの指定された容量修正トリガのうちの1つ以上を含む複数のイベントの組み合わせである原因を有する、結論付けることと、
1つ以上の追加の動作が、その結論付けられる原因に対応して実施されることを可能にするように、利用可能性の変更のうちの1つ以上の各々について、結論付けられる原因の指示を提供することと、を含む、方法。
Section 4. A computer-implementable method for determining a causal relationship of dynamic modification in a program execution capacity provided to a user, the method comprising:
A plurality of programs configurable to execute a program of a user of the program execution service under the control of one or more computing systems configured to provide a program execution service for use by a plurality of users Under the control of the program execution service having the computing node,
Receiving an indication of an initial desired program execution capacity for executing one or more software programs on behalf of a first user of the program execution service;
Determining a plurality of capacity correction triggers for use in later initiating automated corrections to the program execution capacity provided to the first user, each of the capacity correction triggers Determining, including one or more criteria for use to determine whether the trigger is satisfied, and including a specified type of program execution capacity modification requested when the capacity modification trigger is satisfied And
Automatically determining a plurality of first groups of various computing nodes for use to provide an initial desired program execution capacity of a first user; Causing a computing node of a group to each execute one or more software programs for a first user;
A plurality of independent, which may occur in a period between the first and the second, and each may result in a modification of the program execution capacity provided by the first group of computing nodes Automatically identifying an event, wherein the plurality of events includes at least one of a specified capacity modification trigger that is determined to be satisfied;
Automatically determining the actual program execution capacity available to the first user from the computing node in the first group for the second time, the second actual program execution capacity being the first To the first user for the first time based at least in part on one or more changes to the availability of the first group of one or more computing nodes that occurred in the period between the first time and the second time Determining that it is separate from the desired program execution capacity,
Automatically concludes one or more of the events identified as the cause of the availability change for each of the availability changes of one or more computing nodes of the first group. A combination of events including one or more of at least one specified capacity modification trigger that is determined to be satisfied, wherein at least one of the availability changes is independent of each other Having a cause that is
An indication of the cause to be concluded for each of one or more of the availability changes to allow one or more additional actions to be performed in response to that conclusion. Providing a method.
第5節。複数のイベントは、第1の群によって提供されているプログラム実行容量に対する指定された修正をリクエストするために、第1のユーザによって動的に指定される少なくとも1つの容量修正命令をさらに含み、少なくとも1つの利用可能性の変更のうちの1つの原因として結論付けられる複数のイベントの組み合わせは、少なくとも1つの指定された容量修正命令のうちの1つ以上を含む、第4節に記載の方法。 Section 5. The plurality of events further includes at least one capacity modification instruction that is dynamically specified by the first user to request a specified modification to the program execution capacity provided by the first group, and at least The method of clause 4, wherein the combination of events concluded as a cause of one availability change includes one or more of at least one specified capacity modification instruction.
第6節。利用可能性の変更のうちの少なくとも1つの他の変更は、複数のイベントのうちの単一の1つである結論付けられる原因を有し、この少なくとも1つの他の利用可能性の変更は、前記少なくとも1つの利用可能性の変更とは別である、第4節に記載の方法。 Section 6. At least one other change in the availability change has a concluded cause that is a single one of the plurality of events, and the at least one other availability change is: The method of clause 4, separate from the at least one availability change.
第7節。単一の1つのイベントは、少なくとも1つの他の利用可能性の変更の原因の判定された種類であり、判定された原因の種類は、直接的原因または間接的原因のいずれかであり、単一の1つのイベントの指示を提供することは、少なくとも1つの他の利用可能性の変更の原因の判定された種類であることを自動的に判別することをさらに含む、第6節に記載の方法。
第8節。実際のプログラム実行容量を自動的に判別することは、生じた複数の利用可能性の変更を判別することを含み、利用可能性の変更の各々の原因として1つ以上のイベントを自動的に結論付けることは、各々、複数の利用可能性の変更のうちの1つの単一の原因である複数のイベントのうちの1つ以上を識別することと、単一の原因を有しない複数の利用可能性の変更の互いの組み合わせの一部として、複数の利用可能性の変更のうちの1つの単一の原因ではない複数のイベントの全てを総計することと、を含む、第4節に記載の方法。 Section 8. Automatically determining the actual program execution capacity includes determining the multiple availability changes that have occurred, and automatically concludes one or more events as the cause of each availability change. Attaching each identifies one or more of a plurality of events that are a single cause of a plurality of availability changes and a plurality of availability without a single cause Summing all of a plurality of events that are not a single cause of one of a plurality of availability changes as part of a combination of gender changes with each other. Method.
第9節。少なくとも1つの利用可能性の変更のうちの1つについて、1人の利用可能性の変更の原因としての複数のイベントの組み合わせを自動的に結論付けることは、複数のイベントの組み合わせが1つの利用可能性の変更の原因の判定された種類であることを判別することを含み、判定された種類の原因は、直接的原因または間接的原因のいずれかであり、1つ以上の利用可能性の変更の各々について結論付けられる原因の指示を提供することは、1つの利用可能性の変更の原因の判定された種類である複数のイベントの組み合わせの指示を提供することを含む、第4節に記載の方法。 Section 9. For one of at least one availability change, automatically concludes a combination of events as a cause of one availability change is a combination of events Including determining that the cause of the change in likelihood is the determined type of cause, the determined type of cause being either a direct cause or an indirect cause, and one or more availability Providing an indication of the cause that can be concluded for each of the changes includes providing an indication of a combination of events that is a determined type of cause of one availability change. The method described.
第10節。複数の独立したイベントは、各々、第1の群によって提供されているプログラム実行容量の修正をリクエストし、方法は、複数のイベントのリクエストされた修正の総計に基づいて、第1の群のプログラム実行容量に対して行う単一の総計された修正を自動的に判別することと、2回目の前に第1の群に対する判定された単一の総計された修正を開始することと、をさらに含む、第4節に記載の方法。
第11節。複数のイベントは、第1の群によって提供されているプログラム実行容量に対する指定された修正をリクエストするために、第1のユーザによって動的に指定される少なくとも1つの容量修正命令をさらに含み、判定された複数の容量修正トリガは、1回目の前に第1のユーザによって指定され、少なくとも1つの利用可能性の変更のうちの1つの原因として結論付けられる複数のイベントの組み合わせは、少なくとも1つの指定された容量修正命令のうちの1つ以上を含む、第10節に記載の方法。
Section 11. The plurality of events further includes at least one capacity modification instruction that is dynamically specified by the first user to request a specified modification to the program execution capacity provided by the first group. The plurality of capacity modification triggers specified by the first user before the first time and the combination of the plurality of events concluded as one cause of the at least one availability change is at least one The method of
第12節。判定された単一の総計された修正は、1つ以上の指定された容量修正命令が原因として結論付けられる組み合わせに含まれる1つの利用可能性の変更である、第11節に記載の方法。
第13節。第1の群のプログラム実行容量は、初期の望ましいプログラム実行容量が初期の望ましいコンピューティングノードの数となり、かつ、2回目で判定された実際のプログラム実行容量が2回目で第1の群の一部として利用可能な実際のコンピューティングノードの数となるように、第1の群の一部であるコンピューティングノードの数に基づいて計測され、第1の群の1つ以上のコンピューティングノードの1つ以上の利用可能性の変更は、各々、利用不可能になる第1の群と、第1の群に追加される1つ以上の新しいコンピューティングノードとの一部である1つ以上のコンピューティングノードのうちの少なくとも1つを含み、第1の群に対する判定された単一の総計された修正は、第1の群のうちのコンピューティングノードの数の判定された変更である、第10節に記載の方法。
第14節。判定された単一の総計された修正は、1つ以上のコンピューティングノードの指定された数だけ、第1の群のうちのコンピューティングノードの数を増加させることであり、判定された単一の総計された修正は、結論付けられる原因の指示が提供される1つ以上の利用可能性の変更のうちの1つであり、方法は、開始された判定された単一の総計された修正に少なくとも部分的に基づいて、第1のユーザに対して1つ以上の金銭的な課金を開始することを含む1つ以上の追加の動作を実行することをさらに含む、第13節に記載の方法。
Section 14. The determined single aggregated correction is to increase the number of computing nodes in the first group by the specified number of one or more computing nodes, and the determined single The aggregated correction is one of one or more availability changes that provide an indication of the cause that is concluded, and the method is the determined single aggregated correction initiated 14. The method of
第15節。結論付けられる原因の指示が提供される1つ以上の利用可能性の変更のうちの1つは、1つの利用可能性の変更の原因の少なくとも一部として、複数のイベントの少なくとも最初を含み、1人の利用可能性の変更の結論付けられる原因の指示を提供することは、イベントが1つの利用可能性の変更を生じさせる、および第1のイベントによって利用可能性の変更が生じる、のうちの少なくとも1つのリクエストに応じて実行される、第4節に記載の方法。 Section 15. One of the one or more availability changes for which an indication of the cause being concluded is provided includes at least a first of the plurality of events as at least part of the cause of the one availability change; Providing an indication of the conclusive cause of a change in availability of one person is that an event causes one availability change, and a first event causes an availability change The method of clause 4, wherein the method is performed in response to at least one request.
第16節。ユーザからリクエストが受信され、1つの利用可能性の変更の結論付けられる原因の指示を提供することは、1人の利用可能性の変更の結論付けられた原因の人間可読説明を生成することと、ユーザに表示するための生成された人間可読説明を提供することとを含む、第15節に記載の方法。
第17節。2回目後に生じる1つ以上の追加の期間の各々について、追加の期間の間に生じた利用可能性の変更の原因として1つ以上の追加の識別されたイベントを自動的に結論付けることをさらに含み、1つ以上の追加の期間のうちの1つの間に生じた利用可能性の変更のうちの1つの原因である追加の識別されたイベントのうちの1つについて、1つの追加の識別されたイベントは、1回目と2回目との間の期間の間に生じた利用可能性の変更のうちの1つの結果である、第4節に記載の方法。 Section 17. For each one or more additional time periods that occur after the second time, further automatically concludes one or more additional identified events as the cause of the availability change that occurred during the additional time period One additional identified event for one of the additional identified events responsible for one of the availability changes that occurred during one of the one or more additional time periods. The method of clause 4, wherein the event is a result of one of the availability changes that occurred during the period between the first and second.
第18節。第1のユーザのために1つ以上のソフトウェアプログラムを各々実行するために、1回目に第1の群のうちのコンピューティングノードを利用可能にすることは、第1の群のうちのコンピューティングノードの各々を自動的に供給することを含み、かつ、第1の群のうちのコンピューティングノードの各々上で1つ以上のソフトウェアプログラムの各々の実行を自動的に開始することを含む、第4節に記載の方法。 Section 18. Making a computing node in the first group available for the first time to each run one or more software programs for the first user is computing in the first group. Automatically providing each of the nodes, and automatically starting execution of each of the one or more software programs on each of the computing nodes of the first group. The method described in Section 4.
第19節。プログラム実行サービスは、第1のユーザからリモートである料金ベースのネットワークでアクセス可能なサービスであり、プログラム実行サービスは、1つ以上のネットワークにおいてプログラム実行サービスとプログラム的に相互作用するためのリモートコンピューティングシステムの1つ以上のアプリケーションプログラミングインターフェース(API)と、1つ以上のネットワークにおいてリモートユーザが使用するためのグラフィカルユーザインターフェースとの少なくとも1つを提供し、第1のユーザは、利用可能性の変更のうちの1つ以上の結論付けられる原因に少なくとも一部基づいて、1つ以上の料金を支払う、第4節に記載の方法。
第20節。複数のコンピューティングノードが、複数の物理的コンピューティングシステムの各々について、各々少なくとも1つのプログラムを実行することができる物理的コンピューティングシステムによってホストされる複数の仮想マシンを含むように、プログラム実行サービスは、仮想技法を使用し、第1の群のうちのコンピューティングノードはホストされた仮想マシンであり、第1のユーザの1つ以上のプログラムは仮想マシンイメージの一部である、第4節に記載の方法。
第21節。
構成されたコンピューティングシステムの制御下において、第1のユーザの代わりに1つ以上のソフトウェアプログラムを実行するために使用するための初期のプログラム実行容量を提供するために、1回目で第1のユーザに関連付けられる複数のコンピューティングノードの第1の群の指示を受信することと、
1回目と後の2回目との間に生じ、かつ、各々、第1の群のプログラム実行容量の関連付けられた望ましい修正を有する複数の独立したイベントを自動的に識別することと、
2回目に第1の群のうちのコンピューティングノードから第1のユーザへ利用可能な実際のプログラム実行容量を自動的に判別することであって、2回目の実際のプログラム実行容量は、第1の群の1つ以上のコンピューティングノードの利用可能性に対する1つ以上の変更に少なくとも部分的に基づく、1回目で提供された初期のプログラム実行容量とは、別である、判別することと、
第1の群の判定された利用可能性の変更の各々に1つ以上の原因を自動的に結論付けることであって、利用可能性の変更の少なくとも1つに結論付けられる1つ以上の原因は、多様な識別された独立したイベントの組み合わせである、結論付けることと、
少なくとも1つの利用可能性の変更のうちの1つ以上について、結論付けられる1つ以上の原因の指示を提供することと、を含む方法を実行することによって、そのコンテンツが、ユーザに提供されたプログラム実行容量の動的修正のために因果関係を判定するように、コンピューティングシステムを構成する、コンピュータ可読媒体。
Section 21.
In order to provide an initial program execution capacity for use to execute one or more software programs on behalf of a first user under the control of a configured computing system, Receiving an indication of a first group of computing nodes associated with a user;
Automatically identifying a plurality of independent events that occur between a first time and a subsequent second time, each having an associated desirable modification of a first group of program execution capacity;
Automatically determining the actual program execution capacity available to the first user from the computing node in the first group for the second time, the second actual program execution capacity being the first Determining an initial program execution capacity provided at a first time that is based at least in part on one or more changes to the availability of one or more computing nodes of the group;
One or more causes for automatically deciding one or more causes for each of the determined availability changes of the first group, wherein one or more causes are concluded for at least one of the availability changes A conclusion that is a combination of a variety of identified independent events;
Providing the content to the user by performing a method comprising: providing an indication of one or more causes to be concluded for one or more of the at least one availability change A computer readable medium that configures a computing system to determine causal relationships for dynamic modification of program execution capacity.
第22節。構成されたコンピューティングシステムは、プログラム実行サービスのユーザのプログラムを実行するように構成可能な複数のコンピューティングノードを提供するプログラム実行サービスの一部であり、第1の群の複数のコンピューティングノードは、複数のコンピューティングノードのサブセットであり、第1の群の指示を受信することは、1回目の前に第1のユーザから初期のプログラム実行容量のリクエストを受信することと、第1のユーザに初期のプログラム実行容量を提供するために使用するための1回目で第1のユーザに、コンピューティングノードの第1の群を自動的に関連付けることと、を含み、第1のユーザは、第1の群のプログラム実行容量に対する自動化された修正を後で開始するために使用するための、1回目の前の1つ以上の容量修正トリガをさらに示し、複数の独立したイベントは、満たされると判定され、かつ、第1のユーザによって動的に指定される少なくとも1つの容量修正命令を含む、容量修正トリガのうちの少なくとも1つを含む、第21節に記載のコンピュータ可読媒体。 Section 22. The configured computing system is part of a program execution service that provides a plurality of computing nodes configurable to execute a program of a user of the program execution service, the first group of the plurality of computing nodes Is a subset of a plurality of computing nodes, and receiving the first group of instructions includes receiving an initial program execution capacity request from a first user before the first time, Automatically associating a first group of computing nodes with a first user for a first time for use to provide a user with initial program execution capacity, A first time to use for later initiating automated modifications to the first group of program execution capacities Wherein the plurality of independent events include at least one capacity modification instruction that is determined to be satisfied and that is dynamically specified by the first user. The computer-readable medium of clause 21, comprising at least one of the following:
第23節。複数の独立したイベントの各々についてのプログラム実行容量の望ましい修正はリクエストされた修正であり、方法は、少なくとも1つの満たされた容量修正トリガと、第1のユーザからの少なくとも1つの容量修正命令とのリクエストされた修正の総計に基づいて、第1の群のプログラム実行容量を増加させるために行う単一の総計された修正を自動的に判別することと、2回目の前に判定された単一の総計された修正を開始することとをさらに含み、判定された単一の総計された修正は、少なくとも1つの利用可能性の変更のうちの1つであり、判定された単一の総計された修正の1つ以上の原因として結論付けられる複数の独立したイベントの組み合わせは、少なくとも1つの満たされた容量修正トリガおよび第1のユーザからの少なくとも1つの容量修正命令を含む、第22節に記載のコンピュータ可読媒体。
第24節。コンピュータ可読媒体は、コンテンツを記憶するコンピューティングシステムのメモリと、コンテンツを含有する生成された記憶されたデータ信号を含むデータ伝送媒体とのうちの少なくとも1つであり、コンテンツは、実行されるとコンピューティングシステムに方法を実行させる命令である、第21節に記載のコンピュータ可読媒体。 Section 24. The computer readable medium is at least one of a memory of a computing system that stores content and a data transmission medium that includes a generated stored data signal containing the content, the content being executed. The computer readable medium of clause 21, instructions that cause a computing system to perform the method.
第25節。ユーザのために、プログラム実行容量における動的修正のために因果関係を判定するように構成されたコンピューティングシステムであって、
1つ以上のプロセッサと、
複数のユーザの各々について、
ユーザの代わりに、1つ以上のソフトウェアプログラムを実行するために使用するために提供される初期のプログラム実行容量を判別することと、ユーザのために提供されているプログラム実行容量に対する自動化された修正を後で開始するために使用するための1つ以上の容量修正トリガを判別することと、
ユーザに初期の望ましいプログラム実行容量を提供するために使用するために、複数の利用可能なコンピューティングノードの群を1回目にユーザに自動的に関連付けることと、
1回目の後、1回目と後の2回目との間で生じ、かつ、群のプログラム実行容量の関連付けられた望ましい修正を各々有する、複数の独立したイベントを自動的に識別することであって、複数のイベントは満たされると判定される容量修正トリガのうちの少なくとも1つを含む、識別することと、
群によって提供されるプログラム実行容量に影響する群の1つ以上のコンピューティングノードの利用可能性に対する1つ以上の変更を自動的に判別することと、
群の判定された利用可能性の変更の各々に対して、1つ以上の原因を自動的に結論付けることであって、利用可能性の変更の少なくとも1つに結論付けられる1つ以上の原因は、多様な識別された独立したイベントの組み合わせであり、利用可能性の変更のうちの少なくとも1つの他の変更に結論付けられる1つ以上の原因は、識別された独立したイベントのうちの単一の1つであり、群の判定された利用可能性の変更のうちの1つ以上について結論付けられる1つ以上の原因の指示を提供することと、によって、
1つ以上のプロセッサのうちの少なくとも1つによって実行されると、ネットワークでアクセス可能なサービスの複数のユーザのためにプログラム実行容量を管理するように構成されるシステムマネジャーモジュールと、を備える、コンピューティングシステム。
Section 25. A computing system configured to determine for a user a causal relationship for dynamic modification in program execution capacity,
One or more processors;
For each of multiple users
Determining the initial program execution capacity provided for use to execute one or more software programs on behalf of the user, and automated modifications to the program execution capacity provided for the user Determining one or more capacity correction triggers for use to start later;
Automatically associating a group of multiple available computing nodes with a user for a first time for use to provide the user with an initial desired program execution capacity;
Automatically identifying a plurality of independent events that occur between the first time and the second time after the first time, and each having a desirable modification associated with the group's program execution capacity. Identifying the plurality of events including at least one of capacity modification triggers determined to be satisfied;
Automatically determining one or more changes to the availability of one or more computing nodes of the group that affect the program execution capacity provided by the group;
One or more causes that automatically conclude one or more causes for each of the determined availability changes of the group, wherein at least one of the availability changes is concluded Is a combination of a variety of identified independent events, and one or more causes that can be concluded for at least one other change of availability are simply a single of the identified independent events. Providing an indication of one or more causes that can be concluded with respect to one or more of the determined availability changes of the group,
A system manager module configured to manage program execution capacity for a plurality of users of a network accessible service when executed by at least one of the one or more processors. System.
第26節。複数のユーザのうちの1人のための複数の独立したイベントは、1人のユーザによって動的に指定される少なくとも1つの容量修正命令をさらに含み、システムマネジャーモジュールは、少なくとも1つの満たされた容量修正トリガと、1人のユーザによって指定された少なくとも1つの容量修正命令との望ましい修正の総計に基づいて、1人のユーザの群のプログラム実行容量を増加させるために行う単一の総計された修正を自動的に判定し、かつ、2回目の前に1人のユーザのために群に対して判定された単一の総計された修正を開始するように構成され、判定された単一の総計された修正は、1人のユーザの少なくとも1つの利用可能性の変更のうちの1つであり、判定された単一の総計された修正の1つ以上の原因として結論付けられる複数の独立したイベントの組み合わせは、少なくとも1つの満たされた容量修正トリガおよび1人のユーザによって指定された少なくとも1つの容量修正命令を含む、第25節に記載のコンピューティングシステム。 Section 26. The plurality of independent events for one of the plurality of users further includes at least one capacity modification instruction that is dynamically specified by the one user, wherein the system manager module is at least one filled A single aggregate that is performed to increase the program execution capacity of a group of one user based on the desired modification total of the capacity modification trigger and at least one capacity modification instruction specified by one user. Configured to automatically determine a single correction that has been determined for the group for one user before the second time, and a single determined The aggregated correction is one of at least one availability change for one user and is concluded as one or more causes of the determined single aggregated correction. A plurality of combinations of independent events, including at least one capacitive correction command specified by at least horn filled capacity modified trigger and one user computing system according to the 25th section that.
第27節。1人のユーザのための判定された容量修正トリガは1人のユーザによって指定され、ネットワークでアクセス可能なサービスは、プログラム実行サービスのリモートユーザのプログラムを実行するように構成可能な複数のコンピューティングノードを提供するプログラム実行サービスであり、複数のユーザの少なくとも1人の各々についての群の複数のコンピューティングノードは、複数のコンピューティングノードのサブセットである、第26節に記載のコンピューティングシステム。 Section 27. The determined capacity modification trigger for one user is specified by one user and the network accessible service is configured to execute a program of a remote user of the program execution service. 27. The computing system of clause 26, wherein the computing system is a program execution service that provides a node, and the plurality of computing nodes in the group for each of at least one of the plurality of users is a subset of the plurality of computing nodes.
第28節。システムマネジャーコンポーネントは、コンピューティングシステムによって実行するためのソフトウェア命令を含む、第25節に記載のコンピューティングシステム。
第29節。複数のユーザの各々について、
ユーザの代わりに1つ以上のソフトウェアプログラムを実行するために使用するために提供される初期のプログラム実行容量を判別することと、ユーザに提供されているプログラム実行容量に対する自動化された修正を後で開始するために使用するための1つ以上の容量修正トリガを判別することと、
ユーザへ初期の望ましいプログラム実行容量を提供するために使用するための、1回目でユーザに、複数の利用可能なコンピューティングノードの群を自動的に関連付けることと、
1回目の後、1回目と後の2回目との間に生じ、かつ、群のプログラム実行容量の関連付けられた望ましい修正を各々有する複数の独立したイベントを自動的に識別することであって、複数のイベントは、満たされると判定される容量修正トリガの少なくとも1つを含む、識別することと、
群によって提供されたプログラム実行容量に影響する群の1つ以上のコンピューティングノードの利用可能性に対する1つ以上の変更を自動的に判別することと、
群の判定された利用可能性の変更の各々に1つ以上の原因を自動的に結論付けることであって、利用可能性の変更の少なくとも1つに結論付けられる1つ以上の原因は、多様な識別された独立したイベントの組み合わせであり、利用可能性の変更のうちの少なくとも1つの他の変更に結論付けられる1つ以上の原因は、単一の識別された独立したイベントのうちの1つであり、群の判定された利用可能性の変更のうちの1つ以上について、結論付けられる1つ以上の原因に指示を提供すること、によって、システムマネジャーコンポーネントは、ネットワークでアクセス可能なサービスの複数のユーザのプログラム実行容量を管理するための手段で構成される、第25節に記載のコンピューティングシステム。
Determining the initial program execution capacity provided to be used to execute one or more software programs on behalf of the user and automated modifications to the program execution capacity provided to the user later Determining one or more capacity correction triggers for use to initiate;
Automatically associating a group of multiple available computing nodes with a user at a first time for use to provide an initial desired program execution capacity to the user;
Automatically identifying a plurality of independent events that occur between the first time and the second time after the first time and each having a desirable modification associated with the program execution capacity of the group, Identifying a plurality of events including at least one of capacity modification triggers determined to be satisfied;
Automatically determining one or more changes to the availability of one or more computing nodes of the group that affect the program execution capacity provided by the group;
Automatically concludes one or more causes for each of the determined availability changes of the group, wherein the one or more causes concluded for at least one of the availability changes may vary One or more of the identified independent events, and one or more causes that can be concluded for at least one other change in availability is one of the single identified independent events By providing instructions to one or more causes that can be concluded for one or more of the group's determined availability changes, the system manager component can provide a network accessible service. 26. The computing system of clause 25, comprising means for managing the program execution capacity of a plurality of users.
第30節。ユーザのプログラム実行容量を動的に修正するための、プログラム実行サービスの構成されたコンピューティングシステムの方法であって、方法は、
プログラム実行サービスの構成されたコンピューティングシステムの制御下であって、複数のリモートユーザのプログラムを実行するように構成可能な複数のコンピューティングノードをプログラム実行サービスが提供する、当該制御下において、多様なユーザの各々について、
ユーザの指示されたプログラムを実行するために使用するための初期の望ましいコンピューティングノードの数を指定し、かつ、望ましいコンピューティングノード数に対する自動化された修正を後で開始するために使用するための1つ以上の数修正トリガを指定する、ユーザからの情報を受信することであって、数修正トリガの各々は、数修正トリガが満たされているかどうかを判別するために使用するための1つ以上の基準を含み、かつ、数修正トリガが満たされる場合に指定されたコンピューティングノード数変更を含む、受信することと、
ユーザの指示されたプログラムを実行するために使用するための複数のコンピューティングノードの複数の群を自動的に判別することであって、群の複数のコンピューティングノードは初期の望ましいコンピューティングノード量である、判別することと、1回目で使用するための複数のコンピューティングノードユーザを提供することと、
ユーザからの1つ以上の命令に応答して、群のうちのコンピューティングノードの各々の上に指示されたプログラムのコピーの実行を開始することと、1回目にユーザに利用可能であると記録される公的コンピューティングノード量として初期の望ましいコンピューティングノード量を指定することと、
期間の間、これらのコンピューティングノードの操作から性能特性を判定するために、群のうちのコンピューティングノードを自動的に監視することと、ユーザによって指定された数修正トリガのうちの少なくとも1つが判定された性能特性に基づいて満たされることを自動的に判別することと、
期間の間、ユーザによって動的に指定される群のうちのコンピューティングノードのユーザ指示されたコンピューティングノード量の変更を示す少なくとも1つの命令を受信することと、
2回目に修正された望ましいコンピューティングノード量を自動的に判別することであって、修正された望ましいコンピューティングノード数は、少なくとも1つの満たされた数修正トリガからの指定されたコンピューティングノード量の変更と、ユーザ指示されたコンピューティングノード数の変更とに少なくとも部分的に基づいて、1回目からの望ましいコンピューティングノード数に対する変更を含む、判別することと、
ユーザについてプログラムを実行するために、2回目に実際に利用可能な群のうちのコンピューティングノードの数を反映する。2回目で実際のコンピューティングノード量を自動的に判別することと、
2回目に、ユーザの公的コンピューティングノード数を修正された望ましいコンピューティングノード数に自動的に調和させることであって、調和させることは、修正された望ましいコンピューティングノード数になるように判定された実際のコンピューティングノード数を変更するための動作を行うことによって、群の一部であるコンピューティングノードの数を自動的に修正することを含む、調和させることと、
ユーザが使用するための群の修正されたコンピューティングノードの数を提供することと、2回目にユーザに利用可能な公的コンピューティングノード数になるように修正された望ましいコンピューティングノード量を指定することと、によって、1回目から後の2回目への期間、群のうちのコンピューティングノードを自動的に管理することと、を含む、方法。
Section 30. A method of a computing system configured with a program execution service for dynamically modifying a user's program execution capacity, the method comprising:
The program execution service provides a plurality of computing nodes that can be configured to execute programs of a plurality of remote users under the control of a computing system configured with the program execution service. For each new user
For specifying an initial desired number of computing nodes for use to execute a user's indicated program and for use in later initiating automated modifications to the desired number of computing nodes Receiving information from a user specifying one or more number correction triggers, each of the number correction triggers being one used for determining whether the number correction trigger is satisfied Receiving, including the above criteria and including a specified compute node number change if a number correction trigger is met;
Automatically determining a plurality of groups of computing nodes for use in executing a user-instructed program, wherein the plurality of computing nodes in the group is an initial desired computing node quantity Determining, providing a plurality of computing node users for first use,
Responsive to one or more instructions from the user, starting to execute a copy of the indicated program on each of the computing nodes of the group and recording as available to the user for the first time. Specifying the initial desired compute node amount as the public compute node amount to be played,
During the period, at least one of automatically monitoring the computing nodes in the group and determining the number of modification triggers specified by the user to determine performance characteristics from the operation of these computing nodes Automatically determining that it is satisfied based on the determined performance characteristics;
Receiving at least one instruction indicative of a change in a user-instructed amount of computing nodes of a group of computing nodes of a group dynamically specified by a user for a period of time;
Automatically determining a desired amount of computing nodes modified a second time, wherein the desired number of computing nodes modified is a specified amount of computing nodes from at least one filled number modification trigger Determining a change in the desired number of computing nodes from the first time, based at least in part on the change in
Reflects the number of computing nodes in the group that are actually available for the second time to execute the program for the user. Automatically determining the actual amount of compute nodes the second time,
Second, automatically reconcile the user's number of public computing nodes with the modified desired number of computing nodes, where reconciliation is determined to be the modified desired number of computing nodes. Reconciling, including automatically modifying the number of computing nodes that are part of the group by performing an action to change the actual number of computing nodes performed;
Provide the group's modified number of compute nodes for use by the user and specify the desired amount of compute nodes modified to be the number of public computing nodes available to the user the second time And automatically managing computing nodes of the group for a period from a first time to a second time after.
第31節。複数のユーザのうちの1人について、2回目に判定された実際のコンピューティングノード数は、1回目から2回目への期間の間に使用することが利用不可能になる1人のユーザのための群のうちのコンピューティングノードのうちの1つ以上に少なくとも部分的に基づいて、1回目の公的コンピューティングノード数未満であり、期間の間、1人のユーザについて群のうちのコンピューティングノードを自動的に監視することは、1人のユーザの現行の実際のコンピューティングノード数を繰り返し判別することと、判定された現行の実際のコンピューティングノード量で、更新された公的コンピューティングノード数を調整するために、1人のユーザの公的コンピューティングノード数を更新することとを含み、1人のユーザの少なくとも1つの満たされた数修正トリガは、1人のユーザによって指定された初期の望ましいコンピューティングノードの数に、2回目の公的コンピューティングノード量を維持するために、1つ以上の利用不可能なコンピューティングノードの数だけ、1人のユーザの群のうちのコンピューティングノードを増加させるように指定するトリガであり、1人のユーザによって動的に指定されるユーザ指示された量の変更は、少なくとも1つのコンピューティングノードの初期の望ましいコンピューティングノードの数の指示された減少を含み、2回目に1人のユーザの修正された望ましいコンピューティングノード数を自動的に判別することは、1つ以上の利用不可能なコンピューティングノードで、指示された減少を少なくとも部分的に相殺することを含み、2回目に1人のユーザに利用可能な公的コンピューティングノード数は、1人のユーザによって指定された初期の望ましいコンピューティングノードの数から、1人のユーザによって指定される指示された減少を引いたものである、第30節に記載の方法。 Section 31. For one of a plurality of users, the actual number of computing nodes determined for the second time is for one user that is unavailable for use during the first to second time period. Computing less than the first public computing node based on at least in part one or more of the computing nodes in the group and computing in the group for one user for a period of time Automatic monitoring of nodes repeatedly determines the current actual computing node number of one user and updates the public computing updated with the determined actual actual computing node quantity. Updating the number of public computing nodes of one user to adjust the number of nodes, including at least one user One filled number modification trigger is one or more unavailable to maintain the amount of the second public computing node at the initial desired number of computing nodes specified by one user. A trigger that specifies to increase the number of computing nodes in a group of one user by the number of active computing nodes, and a user-designated amount change dynamically specified by one user is Automatically determining the modified desired number of computing nodes for a single user for a second time, including an indicated decrease in the number of initially desired computing nodes of at least one computing node, At least partially offset the indicated decrease in one or more unavailable computing nodes The number of public computing nodes available to one user for the second time is an indication specified by one user from the initial desired number of computing nodes specified by one user. 30. The method of paragraph 30, subtracted from the reduced.
第32節。プログラム実行サービスは、複数のユーザが各々、1回目にユーザが使用するための複数のコンピューティングノードを提供するための第1の料金を支払い、かつ、各々、2回目でユーザが使用するための群の修正されたコンピューティングノードの数を提供するための個別の第2の料金を支払うように、料金ベースのネットワークでアクセス可能なサービスであり、第1および第2の料金は、各々、ユーザの群のうちのコンピューティングノードの現行の数に少なくとも部分的に基づく、第31節に記載の方法。 Section 32. The program execution service is for a plurality of users to pay a first fee for providing a plurality of computing nodes for the user to use for the first time, and for the user to use each time for the second time. A service that is accessible in a fee-based network to pay a separate second fee to provide a number of modified computing nodes in the group, each of the first and second fees being a user 32. The method of clause 31, based at least in part on a current number of computing nodes in the group.
第33節。ユーザのためにプログラム実行容量を動的に修正するためのコンピュータで実装可能な方法であり、方法は、
複数のユーザが使用するためのプログラム実行サービスを提供するように構成される1つ以上のコンピューティングシステムの制御下であって、プログラム実行サービスのユーザのプログラムを実行するように構成可能な複数のコンピューティングノードをプログラム実行サービスが有する、当該制御下において、
プログラム実行サービスの第1のユーザの代わりに1つ以上のソフトウェアプログラムを実行するために使用するための初期の望ましいプログラム実行容量を指定し、かつ、望ましいプログラム実行容量に対する自動化された修正を後で開始するために使用するための1つ以上の容量修正トリガを指定する情報を受信することであって、容量修正トリガの各々は、容量修正トリガが満たされるかどうかを判別するために使用するための1つ以上の基準を含み、かつ、容量修正トリガが満たされる場合にリクエストされる望ましいプログラム実行容量に対する指定された種類の修正を含む、受信することと、
第1のユーザの初期の望ましいプログラム実行容量を提供するために使用するための多様な複数のコンピューティングノード第1の群を自動的に判別することと、各々、第1のユーザに1つ以上のソフトウェアプログラムを実行するために、1回目で第1の群のうちのコンピューティングノードを利用可能にすることと、1回目に、第1のユーザに利用可能であるものとして記録される公的プログラム実行容量として初期の望ましいプログラム実行容量を指定することと、
1回目の後、1つ以上のソフトウェアプログラムを実行することに関連してこれらのコンピューティングノードの性能特性の1つ以上のタイプの現行の値を判定するように、第1の群のうちのコンピューティングノードを監視することであって、監視することは、1回目の後、後の2回目において第1の群のうちのコンピューティングノードから第1のユーザへ利用可能な実際のプログラム実行容量を判別することを含む、監視することと、
1回目と2回目との間の期間において生じる複数のイベントに基づいて、第1のユーザの望ましいプログラム実行容量を修正するために自動的に判別することであって、複数のイベントは、1つ以上の性能特性タイプの判定された現行の値に少なくとも部分的に基づいて満たされると判定される指定された容量修正トリガのうちの少なくとも1つを含み、かつ、第1のユーザによって動的に指定される少なくとも1つの容量修正命令を含み、少なくとも1つの指定された容量修正トリガおよび少なくとも1つの容量修正命令の各々は、望ましいプログラム実行容量に対する指定された修正を示す、判別することと、
2回目に判定された実際のプログラム実行容量および修正された望ましいプログラム実行容量によって、第1のユーザに利用可能な記録された公的プログラム実行容量を自動的に調和させることであって、記録された公的プログラム実行容量を調和させることは、修正されたコンピューティングノードが修正された望ましいプログラム実行容量を提供するために利用可能になるように、かつ、記録された公的プログラム実行容量が提供された修正された望ましいプログラム実行容量を反映するように更新されるように、判定された実際のプログラム実行容量および修正された望ましいプログラム実行容量に従って、第1の群の一部であるコンピューティングノードを自動的に修正することを含む、調和させることと、を含む、方法。
Section 33. A computer-implementable method for dynamically modifying program execution capacity for a user, the method comprising:
A plurality of programs configurable to execute a program of a user of the program execution service under the control of one or more computing systems configured to provide a program execution service for use by a plurality of users Under the control of the program execution service having the computing node,
Specify an initial desired program execution capacity for use to execute one or more software programs on behalf of the first user of the program execution service, and later make automated modifications to the desired program execution capacity Receiving information specifying one or more capacity modification triggers for use to initiate, each of the capacity modification triggers being used to determine whether a capacity modification trigger is met Receiving, including a specified type of modification to a desired program execution capacity requested when a capacity modification trigger is met;
Automatically determining a first group of various computing nodes for use to provide an initial desired program execution capacity of the first user, each one or more for the first user; Making a computing node of the first group available for the first time to execute the software program and the first time recorded as available to the first user Specifying the desired initial program execution capacity as the program execution capacity;
After the first time, to determine one or more types of current values of the performance characteristics of these computing nodes in connection with executing one or more software programs, Monitoring the computing node, which is the actual program execution capacity available from the first group of computing nodes to the first user in the second time after the first time. Monitoring, including determining
Based on a plurality of events occurring in a period between the first time and the second time, automatically determining to correct a desired program execution capacity of the first user, the plurality of events being one Including at least one of the designated capacity modification triggers determined to be satisfied based at least in part on the determined current value of the performance characteristic type and dynamically by the first user Determining, including at least one designated capacity modification instruction, each of the at least one designated capacity modification trigger and at least one capacity modification instruction indicating a designated modification to the desired program execution capacity;
Automatically reconciling the recorded public program execution capacity available to the first user with the actual program execution capacity determined at the second time and the modified desired program execution capacity, Reconciling the public program execution capacity provided so that the modified computing node is available to provide the modified desired program execution capacity and the recorded public program execution capacity is provided Computing nodes that are part of the first group according to the determined actual program execution capacity and the modified desired program execution capacity to be updated to reflect the modified desired program execution capacity And automatically reconciling the method.
第34節。初期の望ましいプログラム実行容量が初期の望ましいコンピューティングノードの数になるように、第1の群のプログラム実行容量は、第1の群の一部であるコンピューティングノードの数に基づいて計測され、2回目に判定された実際のプログラム実行容量は、2回目に第1の群の一部として利用可能な実際のコンピューティングノードの数であり、望ましいプログラム実行容量を修正するために自動的に判別することは、第1の群のうちのコンピューティングノードの修正された望ましい数として、修正された望ましいプログラム実行容量を判別することを含み、第1の群の一部であるコンピューティングノードを自動的に修正することは、修正された望ましい量になるように、第1の群の一部であるコンピューティングノードの実際の数を変更させることを含む、第33節に記載の方法。 Section 34. The first group of program execution capacities is measured based on the number of computing nodes that are part of the first group, such that the initial desired program execution capacity is the number of initial desired computing nodes. The actual program execution capacity determined the second time is the actual number of computing nodes available as part of the first group the second time, automatically determined to correct the desired program execution capacity Determining the modified desired program execution capacity as a modified desired number of computing nodes in the first group and automatically computing computing nodes that are part of the first group. To modify the actual amount of computing nodes that are part of the first group so that the desired amount is modified. Comprising changing the method according to the 33 section.
第35節。少なくとも1つの指定された容量修正トリガおよび少なくとも1つの容量修正命令の各々の望ましいプログラム実行容量に対する指定された修正は、第1の群のうちのコンピューティングノードの望ましい数における指示された数の変更を反映し、第1の群についての修正された望ましいプログラム実行容量を判別することは、少なくとも1つの指定された容量修正トリガおよび少なくとも1つの容量修正命令のうちの指示された数の変更を総計することと、総計された量の変更によってコンピューティングノードの初期の望ましい数を修正することと、を含む、第34節に記載の方法。 Section 35. The designated modification to the desired program execution capacity of each of the at least one designated capacity modification trigger and the at least one capacity modification instruction is the indicated number of changes in the desired number of computing nodes in the first group. And determining the modified desired program execution capacity for the first group is the sum of the indicated number of changes of at least one specified capacity modification trigger and at least one capacity modification instruction. 35. The method of clause 34, comprising: modifying the initial desired number of computing nodes by changing the aggregated amount.
第36節。監視することによって現行の値が判定される、第1の群のうちのコンピューティングノードの性能特性の1つ以上のタイプは、第1の群の一部として利用可能なコンピューティングノードの実際の数を含み、監視することは、1回目と2回目との間の期間、複数回の各々においてコンピューティングノードの現行の実際の数を判別することを含み、記録された公的プログラム実行容量を調和させることは、2回目に第1のユーザに利用可能な現行の公的プログラム実行容量へ、第1の群のうちのコンピューティングノードの修正された望ましい量を指定することをさらに含む、第34節に記載の方法。 Section 36. One or more types of performance characteristics of the computing nodes in the first group whose current values are determined by monitoring are the actual computing nodes available as part of the first group. Including and monitoring the number includes determining a current actual number of computing nodes at each of a plurality of times, between a first time and a second time, to determine a recorded public program execution capacity Harmonizing further includes specifying a modified desired amount of computing nodes in the first group to a current public program execution capacity available to the first user for a second time, The method according to paragraph 34.
第37節。第1の群のプログラム実行容量は、第1の群の一部であるコンピューティングノードから利用可能なコンピューティングリソースの複数のタイプの各々を総計することに基づいて計測され、第1の群の一部であるコンピューティングノードを自動的に修正することは、コンピューティングノードを自動的に修正後に第1の群の一部であるコンピューティングノードから利用可能なコンピューティングリソースの複数のタイプのうちの少なくとも1つの総計量を変更させることを含む、第33節に記載の方法。 Section 37. The program execution capacity of the first group is measured based on summing each of the plurality of types of computing resources available from the computing nodes that are part of the first group, Automatically modifying a computing node that is part of the plurality of types of computing resources available from computing nodes that are part of the first group after the computing node is automatically modified. 34. The method of clause 33, comprising changing at least one total metric.
第38節。少なくとも1つの指定された容量修正トリガのうちの各々の1つ以上の基準は、1つ以上の性能特性タイプのうちの少なくとも1つについて1つ以上の指定された値に基づき、方法は、少なくとも1つの指定された容量修正トリガの各々についての1つ以上の指定された値と、1つ以上の性能特性タイプについて判定された現行の値との間の一致に少なくとも部分的に基づいて、少なくとも1つの指定された容量修正トリガが満たされることを自動的に判別することをさらに含む、第33節に記載の方法。 Section 38. The one or more criteria for each of the at least one specified capacity modification trigger is based on one or more specified values for at least one of the one or more performance characteristic types, and the method includes at least Based at least in part on a match between one or more specified values for each of one specified capacity modification trigger and a current value determined for one or more performance characteristic types, at least 34. The method of clause 33, further comprising automatically determining that one specified capacity modification trigger is met.
第39節。少なくとも1つの性能特性タイプは、第1の群のうちのコンピューティングノード上のコンピューティング負荷に対応し、少なくとも1つの指定された容量修正トリガが満たされていることを判別することは、一時的に増加した状態である第1の群のうちのコンピューティングノード上のコンピューティング負荷に基づき、第1の群の一部であるコンピューティングノードを自動的に修正することは、コンピューティング負荷の一時的に増加した状態を受け入れるために、第1の群のうちのコンピューティングノードから利用可能な実際のプログラム実行容量を一時的に増加させることを含み、方法は、コンピューティング負荷の一時的に増加した状態の終了を反映するために、第1の群のうちのコンピューティングノードの一時的に増加した実際のプログラム実行容量を減少させるために、実際のプログラム実行容量を一時的に増加した後で、後の3回目において自動的に判別することをさらに含む、第38節に記載の方法。 Section 39. The at least one performance characteristic type corresponds to a computing load on a computing node in the first group and determining that at least one specified capacity modification trigger is met is temporary Automatically modifying the computing nodes that are part of the first group based on the computing load on the computing nodes of the first group that have increased to Including temporarily increasing the actual program execution capacity available from the computing nodes of the first group to accept the increased state, the method temporarily increasing the computing load In order to reflect the end of the state, the computing nodes in the first group are temporarily increased. In order to reduce the actual program execution capacity, after temporarily increasing the actual program execution capacity, further comprising automatically determining the third post, the method according to the 38 section.
第40節。少なくとも1つの性能特性タイプは、第1の群の一部として利用可能なコンピューティングノードの実際の数を含み、少なくとも1つの指定された容量修正トリガが満たされることを判別することは、指定された望ましいコンピューティングノードの数とは異なっている第1の群のうちのコンピューティングノードの実際の数に基づき、第1の群の一部であるコンピューティングノードを自動的に修正することは、指定された望ましいコンピューティングノードの数に、第1の群のうちのコンピューティングノードの異なる実際の数を戻すことを含む、第38節に記載の方法。
第41節。少なくとも1つの指定された容量修正トリガのうちの1つの1つ以上の基準は、指示された性能特性タイプの判定された現行の値の閾値と、指示された性能特性タイプの判定された現行の値の経時的変化量と、および複数の性能特性タイプの判定された現行の値の論理的な組み合わせと、の1つ以上に基づく、第38節に記載の方法。 Section 41. One or more criteria of one of the at least one specified capacity modification trigger includes a determined current value threshold of the indicated performance characteristic type and a determined current value of the indicated performance characteristic type. 39. The method of clause 38, based on one or more of a value change over time and a logical combination of determined current values of a plurality of performance characteristic types.
第42節。複数のイベントは、その1つ以上の基準が1つ以上の指定された時間に基づく、トリガされた指定された容量修正トリガのうちの1つをさらに含み、方法は、1つ以上の指定された時間に一致する現時刻に少なくとも部分的に基づいて、1つの指定された容量修正トリガが満たされると自動的に判別することをさらに含む、第33節に記載の方法。 Section 42. The plurality of events further includes one of the triggered specified capacity modification triggers whose one or more criteria is based on one or more specified times, and the method is one or more specified 34. The method of clause 33, further comprising: automatically determining when one specified capacity modification trigger is met based at least in part on a current time corresponding to the selected time.
第43節。複数のイベントは、その1つ以上の基準が履歴データから識別された1つ以上のパターンに基づく、トリガされた指定された容量修正トリガののうちの1つをさらに含み、方法は、1つ以上のパターンのうちの少なくとも1つに対応する1つ以上の性能特性タイプについて、少なくとも部分的に判定された現行の値に基づいて、1つの指定された容量修正トリガが満たされることを自動的に判別することをさらに含む、第33節に記載の方法。 Section 43. The plurality of events further includes one of the triggered designated capacity correction triggers, wherein the one or more criteria is based on one or more patterns identified from the historical data. Automatically, for one or more performance characteristic types corresponding to at least one of the above patterns, that one specified capacity correction trigger is met based on at least partially determined current values 34. The method of clause 33, further comprising: determining.
第44節。複数のイベントは、その1つ以上の基準が、第1の群のうちのコンピューティングノード上で実行される1つ以上のソフトウェアプログラムによって実行される仕事量の1つ以上の指示に基づく、トリガされている指定された容量修正トリガのうちの1つをさらに含み、方法は、1つ以上のソフトウェアプログラムによって実行される実際の仕事量に関連する取得された情報に少なくとも部分的に基づいて、1つの指定された容量修正トリガが満たされることを自動的に判別することをさらに含む、第33節に記載の方法。 Section 44. The plurality of events are triggered based on one or more indications of work performed by one or more software programs executed on one or more computing nodes of the first group. Further comprising one of the designated capacity modification triggers being configured, wherein the method is based at least in part on acquired information relating to actual work performed by the one or more software programs; 34. The method of clause 33, further comprising automatically determining that one specified capacity modification trigger is met.
第45節。第1の群について修正された望ましいプログラム実行容量を判別することは、少なくとも1つの指定された容量修正トリガおよび少なくとも1つの容量修正命令の各々によって指定される望ましいプログラム実行容量に対する指示された修正を総計することと、望ましいプログラム実行容量に対する総計された指示された修正に基づいて、判定された修正された望ましいプログラム実行容量を指定することと、を含む、第33節に記載の方法。 Section 45. Determining the desired program execution capacity modified for the first group includes an indicated modification to the desired program execution capacity specified by each of the at least one designated capacity modification trigger and at least one capacity modification instruction. 34. The method of clause 33, comprising summing and specifying the determined modified desired program execution capacity based on the aggregated indicated modification to the desired program execution capacity.
第46節。望ましいプログラム実行容量に対する指示された修正を総計することは、指示された修正を累積することと、指示された修正のうちの少なくとも1つを、指示された修正のうちの少なくとも1つの他の修正で相殺することと、1つ以上の選択基準に基づいて指示された修正のうちの単一の1つを選択することと、指示された修正のうちの1つ以上に関連付けられる1つ以上の優先を使用することと、のうちの少なくとも1つを含む、第45節に記載の方法。 Section 46. Summing the indicated modifications to the desired program execution capacity includes accumulating the indicated modifications, at least one of the indicated modifications, and at least one other modification of the indicated modifications. Canceling with, selecting a single one of the indicated modifications based on one or more selection criteria, and one or more associated with one or more of the indicated modifications 46. The method of clause 45, comprising using at least one of priority.
第47節。第1のユーザによって動的に指定され、かつ、複数のイベントに含まれる少なくとも1つの容量修正命令は、第1のユーザによって指定された単一の容量修正命令を含み、第1のユーザによって指定される容量修正命令は、満たされると判定される指定された容量修正トリガよりも優先され、第1の群の修正された望ましいプログラム実行容量を判別することは、少なくとも1つの指定された容量修正トリガの指示された修正の代わりに使用される単一の容量修正命令によって指定される望ましいプログラム実行容量に対する指示された修正の選択を含む、第33節に記載の方法。 Section 47. The at least one capacity modification instruction dynamically specified by the first user and included in the plurality of events includes a single capacity modification instruction specified by the first user and is specified by the first user The modified capacity instruction is prioritized over a designated capacity modification trigger that is determined to be satisfied, and determining the first group of modified desired program execution capacity is at least one designated capacity modification. 34. The method of clause 33, comprising selecting a directed modification for a desired program execution capacity specified by a single capacity modification instruction that is used in place of the triggered modified modification.
第48節。その地理的位置にある第1の群のうちのコンピューティングノードのうちの1つ以上に基づいて、第1の群のうちのコンピューティングノードのプログラム実行容量の指示されたサブセットを含むことが各々望ましい、複数の個別の地理的な位置の第1のユーザによる指定を受信することをさらに含み、修正されたコンピューティングノードが、複数の地理的な位置の各々において第1の群のうちのコンピューティングノードのプログラム実行容量の指示されたサブセットを含むように修正されるように、受信した指定に従って、第1の群の一部であるコンピューティングノードを自動的に修正することがさらに実行される、第33節に記載の方法。 Section 48. Each comprising an indicated subset of program execution capacity of the computing nodes of the first group based on one or more of the computing nodes of the first group at the geographical location, The method further includes receiving a designation by a first user of a plurality of individual geographic locations, wherein the modified computing node is a computer in the first group at each of the plurality of geographic locations. And automatically modifying the computing nodes that are part of the first group according to the received designation so as to be modified to include the indicated subset of the program execution capacity of the computing nodes. 34. The method of paragraph 33.
第49節。第1の群の一部であるコンピューティングノードを自動的に修正することは、1つ以上の他のコンピューティングノードで、第1の群のうちのコンピューティングノードのうちの1つ以上を置換することを含み、1つ以上の他のコンピューティングノードは、各々、1つ以上の置換されたコンピューティングノードとは異なる量の利用可能なプログラム実行容量を有する、第33節に記載の方法。 Section 49. Automatically modifying a computing node that is part of a first group replaces one or more of the computing nodes in the first group with one or more other computing nodes. 34. The method of clause 33, wherein the one or more other computing nodes each have a different amount of available program execution capacity than the one or more replaced computing nodes.
第50節。第1のユーザについて1つ以上のソフトウェアプログラムを各々実行するために、1回目で第1の群のうちのコンピューティングノードを利用可能にすることは、第1の群のうちのコンピューティングノードの各々を自動的に供給することを含み、かつ、第1の群のうちのコンピューティングノードの各々の上の1つ以上のソフトウェアプログラムの各々の実行を自動的に開始することを含む、第33節に記載の方法。 Section 50. Making the computing node of the first group available for the first time to each run one or more software programs for the first user may Automatically supplying each and including automatically starting execution of each of the one or more software programs on each of the computing nodes of the first group. The method described in the section.
第51節。プログラム実行サービスは、第1のユーザからリモートである料金ベースのネットワークでアクセス可能なサービスであり、プログラム実行サービスは、1つ以上のネットワークにおいてプログラム実行サービスとプログラム的に相互作用するための、リモートコンピューティングシステムの1つ以上のアプリケーションプログラミングインターフェースと、1つ以上のネットワークにおいてリモートユーザによって使用するためのグラフィカルユーザインターフェースとの少なくとも1つを提供し、第1のユーザは、自動的に調和させることの一部として第1の群の一部であるコンピューティングノードを自動的に修正するための1つ以上の料金を支払う、第33節に記載の方法。 Section 51. A program execution service is a service that is accessible on a fee-based network that is remote from a first user, and the program execution service is a remote for programmatically interacting with the program execution service in one or more networks. Providing at least one of one or more application programming interfaces of the computing system and a graphical user interface for use by a remote user in one or more networks, the first user automatically reconciling 34. The method of clause 33, wherein one or more fees are paid for automatically modifying computing nodes that are part of the first group as part of the first group.
第52節。プログラム実行サービスは、複数のコンピューティングノードが、複数の物理的コンピューティングシステムの各々について、各々、少なくとも1つのプログラムを実行することができる物理的コンピューティングシステムによってホストされる複数の仮想マシンを含むように、仮想技法を使用し、第1の群のうちのコンピューティングノードは、ホストされた仮想マシンであり、第1のユーザの1つ以上のプログラムは仮想マシンイメージの一部である、第33節に記載の方法。 Section 52. The program execution service includes a plurality of virtual machines hosted by a physical computing system in which a plurality of computing nodes can each execute at least one program for each of the plurality of physical computing systems. As such, using virtual techniques, a computing node in the first group is a hosted virtual machine and one or more programs of the first user are part of a virtual machine image. The method according to paragraph 33.
第53節。
構成されたコンピューティングシステムの制御下において、第1のユーザの代わりに、1つ以上のソフトウェアプログラムを実行するために使用するための望ましいプログラム実行容量を提供するために、1回目に第1のユーザに関連付けられる複数のコンピューティングノードの第1の群の指示を受信することと、
1回目の後の後の2回目において、第1の群のうちのコンピューティングノードから第1のユーザに利用可能な実際のプログラム実行容量を自動的に判別することであって、2回目の実際のプログラム実行容量は、第1の群の複数のコンピューティングノードのうちの1つ以上の利用可能性に対する1つ以上の変更に少なくとも部分的に基づき、1回目に第1のユーザに提供された望ましいプログラム実行容量とは別である、判別することと、
各々、1回目の後で生じ、かつ、望ましいプログラム実行容量の指示された修正を各々指定する、複数の独立したイベントに基づいて、2回目に第1のユーザに提供される修正された望ましいプログラム実行容量を自動的に判別することであって、2回目の修正された望ましいプログラム実行容量は、複数の独立したイベントの指定された指示された修正の総計に基づき、かつ、1回目で提供される指示された望ましいプログラム実行容量とは別である、判別することと、
2回目に修正された望ましいプログラム実行容量を、2回目に判定された実際のプログラム実行容量と調和させるように、2回目に第1の群の一部であるコンピューティングノードを自動的に修正することであって、修正されたコンピューティングノードは、第1のユーザに対する修正された望ましいプログラム実行容量を提供するために使用するためのものである、修正することと、を含む方法を実行することにより、そのコンテンツが、ユーザのプログラム実行容量を動的に修正するようにコンピューティングシステムを構成する、コンピュータ可読媒体。
Section 53.
In order to provide a desirable program execution capacity for use to execute one or more software programs on behalf of the first user under the control of the configured computing system, the first time Receiving an indication of a first group of computing nodes associated with a user;
In the second time after the first time, automatically determining the actual program execution capacity available to the first user from the computing nodes in the first group, The program execution capacity of the first group was provided to the first user for the first time based at least in part on one or more changes to the availability of one or more of the plurality of computing nodes of the first group. Determining that it is different from the desired program execution capacity;
A modified desired program that is provided to the first user a second time, each based on a plurality of independent events, each occurring after the first time and each specifying a directed modification of the desired program execution capacity Automatically determining the execution capacity, wherein the desired modified program execution capacity for the second time is provided on the first time, based on the specified directed total of multiple independent events. Determining that the desired program execution capacity is different from the indicated
Automatically correct computing nodes that are part of the first group the second time so that the desired program execution capacity modified the second time matches the actual program execution capacity determined the second time Wherein the modified computing node is for use to provide a modified desired program execution capacity for the first user, performing the method including modifying A computer readable medium wherein the content configures the computing system to dynamically modify a user's program execution capacity.
第54節。構成されたコンピューティングシステムは、プログラム実行サービスのユーザのプログラムを実行するように構成可能な複数のコンピューティングノードを提供するプログラム実行サービスの一部であり、第1の群の複数のコンピューティングノードは、複数のコンピューティングノードのサブセットであり、かつ、1回目の前に第1のユーザから受信される望ましいプログラム実行容量のリクエストに応答するプログラム実行サービスによって、1回目に第1のユーザに自動的に関連付けられ、第1のユーザは、望ましいプログラム実行容量に対する自動化された修正を後で開始するために使用するための1つ以上の容量修正トリガをさらに含み、判定された修正された望ましいプログラム実行容量が基づく複数の独立したイベントは、満たされると判定される容量修正トリガの少なくとも1つを含み、かつ、第1のユーザによって動的に指定される少なくとも1つの容量修正命令を含む、第53節に記載のコンピュータ可読媒体。 Section 54. The configured computing system is part of a program execution service that provides a plurality of computing nodes configurable to execute a program of a user of the program execution service, the first group of the plurality of computing nodes Is a subset of a plurality of computing nodes and is automatically sent to the first user the first time by a program execution service that responds to a request for the desired program execution capacity received from the first user before the first time. And the first user further includes one or more capacity modification triggers for use to later initiate automated modifications to the desired program execution capacity, the determined modified desired program Multiple independent events based on execution capacity Is a comprises at least one capacitive modification trigger is determined, and at least one capacitance correction command is dynamically specified by the first user, a computer-readable medium according to the 53 section.
第55節。1つ以上のソフトウェアプログラムは、第1の群の一部ではない少なくとも1つのコンピューティングシステム上で実行されている少なくとも1つの他のソフトウェアプログラムを支援するために、第1の群の複数のコンピューティングノード上で実行され、満たされると判定される少なくとも1つの容量修正トリガのうちの1つ以上は、各々、少なくとも1つの他のソフトウェアプログラムの実行について取得された状態情報に基づく1つ以上の基準を有する、第54節に記載のコンピュータ可読媒体。 Section 55. The one or more software programs may support the at least one other software program running on the at least one computing system that is not part of the first group. One or more of the at least one capacity modification triggers that are executed on the storage node and determined to be satisfied are each one or more based on state information obtained for execution of at least one other software program 56. The computer readable medium of clause 54, having a reference.
第56節。第1のユーザへ1回目に提供される指示された望ましいプログラム実行容量は、1回目に第1のユーザに利用可能な初期の公的プログラム実行容量として、プログラム実行サービスによって記録され、方法は、1つ以上の利用可能性の変更を反映するように、第1の群の1つ以上のコンピューティングノードに対する1つ以上の利用可能性の変更を識別し、かつ、第1のユーザに利用可能なプログラム実行サービスの記録された公的プログラム実行容量を更新するために、1回目から2回目への期間において、第1の群のうちのコンピューティングノードを監視することをさらに含み、第1のユーザに利用可能なプログラム実行サービスの記録された公的プログラム実行容量は、2回目に修正された望ましいプログラム実行容量の自動的に判別に基づいて更新されず、2回目に第1の群の一部であるコンピューティングノードを修正することは、2回目に記録された公的プログラム実行容量を、2回目に修正された望ましいプログラム実行容量に調和させるようにさらに実行され、記録された公的プログラム実行容量を調和させることは、第1のユーザに利用可能なプログラム実行サービスの追加の更新された記録された公的プログラム実行容量として2回目に修正された望ましいプログラム実行容量を識別することを含む、第54節に記載のコンピュータ可読媒体。 Section 56. The indicated desired program execution capacity provided for the first time to the first user is recorded by the program execution service as the initial public program execution capacity available to the first user for the first time, Identifies one or more availability changes for one or more computing nodes of the first group to reflect one or more availability changes and is available to the first user Monitoring the computing nodes of the first group in the first to second time period to update the recorded public program execution capacity of the various program execution services, The recorded public program execution capacity of the program execution service available to the user is automatically determined for the desired program execution capacity modified the second time. Modifying a computing node that is not updated based on the second time and that is part of the first group the second time the public program execution capacity recorded for the second time is desired modified program execution Harmonizing the recorded public program execution capacity that is further executed to harmonize with the capacity is as an additional updated recorded public program execution capacity of the program execution service available to the first user. 55. The computer readable medium of clause 54, comprising identifying a desired program execution capacity that has been modified a second time.
第57節。コンピュータ可読媒体は、コンテンツを記憶するコンピューティングシステムのメモリと、コンテンツを含有する生成された記憶されたデータ信号を含むデータ伝送媒体との少なくとも1つであり、コンテンツは、実行されるとコンピューティングシステムに方法を実行させる命令である、第53節に記載のコンピュータ可読媒体。 Section 57. The computer readable medium is at least one of a memory of a computing system that stores content and a data transmission medium that includes a generated stored data signal containing the content, the content being computed when executed. 54. The computer readable medium of clause 53, instructions for causing a system to perform a method.
第58節。ユーザのためにプログラム実行容量を動的に修正するように構成されたコンピューティングシステムであって、
1つ以上のプロセッサと、
複数のユーザの各々について、
ユーザの代わりに1つ以上のソフトウェアプログラムを実行するために使用するための望ましいプログラム実行容量を判別することと、後で、ユーザについて望ましいプログラム実行容量に対して自動化された修正を開始するために使用するための1つ以上の容量修正トリガを判別することと、
判定された望ましいプログラム実行容量をユーザへ提供するために使用するための、複数の利用可能なコンピューティングノードの群を1回目にユーザへ自動的に関連付けることと、
1回目の後の後の2回目で、群のうちのコンピューティングノードからユーザへ利用可能な実際のプログラム実行容量を1回目の後に自動的に判別することであって、2回目の実際のプログラム実行容量は、1回目にユーザに提供された望ましいプログラム実行容量とは別である、判別することと、
各々、1回目の後に生じ、かつ、各々、望ましいプログラム実行容量の関連付けられた修正を有する複数の独立したイベントに基づいて、2回目にユーザに提供される修正された望ましいプログラム実行容量を自動的に判別することであって、複数の独立したイベントは、満たされると判定される容量修正トリガのうちの少なくとも1つを含み、かつ、ユーザによって動的に指定される少なくとも1つの容量修正命令を含み、2回目に修正された望ましいプログラム実行容量は、複数の独立したイベントの関連付けられた修正の総計に基づく、判別することと、
2回目に修正された望ましいプログラム実行容量を、2回目に判定された実際のプログラム実行容量に調和させるように、2回目に群の一部であるコンピューティングノードを自動的に修正することであって、修正されたコンピューティングノードは、ユーザに修正された望ましいプログラム実行容量を提供するために使用するためのものである、修正することと、によって、
1つ以上のプロセッサのうちの少なくとも1つによって実行されると、ネットワークでアクセス可能なサービスの複数のユーザについて、プログラム実行容量を管理するように構成されるシステムマネジャーモジュールと、を備える、コンピューティングシステム。
Section 58. A computing system configured to dynamically modify program execution capacity for a user,
One or more processors;
For each of multiple users
To determine a desired program execution capacity for use to execute one or more software programs on behalf of a user, and later to initiate automated modifications to the desired program execution capacity for the user Determining one or more capacity correction triggers to use;
Automatically associating a group of a plurality of available computing nodes with a user for a first time for use to provide the determined desired program execution capacity to the user;
In the second time after the first time, the actual program execution capacity available to the user from the computing nodes in the group is automatically determined after the first time, and the second actual program Determining that the execution capacity is different from the desired program execution capacity provided to the user for the first time;
Automatically the modified desired program execution capacity provided to the user a second time, each based on multiple independent events that occur after the first and each have an associated modification of the desired program execution capacity Wherein the plurality of independent events includes at least one of the capacity modification triggers determined to be satisfied, and includes at least one capacity modification instruction dynamically specified by the user. Including, determining the desired program execution capacity modified the second time based on a sum of associated modifications of multiple independent events;
The second is to automatically modify the computing nodes that are part of the group to match the desired program execution capacity modified the second time with the actual program execution capacity determined the second time. The modified computing node is for use to provide a modified desired program execution capacity to the user, by modifying,
A system manager module configured to manage program execution capacity for a plurality of users of a network accessible service when executed by at least one of the one or more processors. system.
第59節。複数のユーザのうちの1人のための判定された望ましいプログラム実行容量は、1人のユーザによって指示され、かつ、1回目で1人のユーザに利用可能であるとして記録される初期の公的プログラム実行容量として識別され、2回目に1人のユーザに利用可能である実際のプログラム実行容量を自動的に判別することは、1つ以上の変更を識別するように、1回目から2回目への期間において、1人のユーザの群のうちのコンピューティングノードを監視することに少なくとも部分的に基づき、コンピューティングノードを監視することは、1つ以上の変更を反映するように、1人のユーザに利用可能な記録された公的プログラム実行容量を更新することを含み、1人のユーザに利用可能な記録された公的プログラム実行容量は、2回目に修正された望ましいプログラム実行容量を自動的に判別することに基づいて更新されず、2回目に群の一部であるコンピューティングノードを修正することは、2回目に記録された公的プログラム実行容量を、2回目に修正された望ましいプログラム実行容量に調和させるようにさらに実行され、記録された公的プログラム実行容量を調和させることは、1人のユーザに利用可能なさらに更新された記録された公的プログラム実行容量として、2回目に修正された望ましいプログラム実行容量を識別することを含む、第58節に記載のコンピューティングシステム。 Section 59. The determined desired program execution capacity for one of a plurality of users is indicated by one user and is recorded as available to one user at a first time initial public Automatically identifying the actual program execution capacity that is identified as program execution capacity and available to one user for the second time is from the first time to the second time to identify one or more changes. In the period of time, based at least in part on monitoring computing nodes of a group of users, monitoring the computing nodes reflects one or more changes to reflect one or more changes. Including updating the recorded public program execution capacity available to the user, the recorded public program execution capacity available to one user is the second time Modifying the computing nodes that are part of the group for the second time, not updated based on automatically determining the correct desired program execution capacity, is the second time recorded public program execution capacity Is further executed to match the desired program execution capacity modified the second time, and reconciling the recorded public program execution capacity is further updated recorded available to one user 59. The computing system of clause 58, comprising identifying the desired program execution capacity modified a second time as the public program execution capacity.
第60節。1人のユーザのために判定された容量修正トリガは1人のユーザによって指定され、ネットワークでアクセス可能なサービスは、プログラム実行サービスのリモートユーザのプログラムを実行するように構成可能な複数のコンピューティングノードを提供するプログラム実行サービスであり、複数のユーザの少なくとも1人の各々について、群の複数のコンピューティングノードは、複数のコンピューティングノードのサブセットである、第59節に記載のコンピューティングシステム。
第61節。システムマネジャーモジュールは、コンピューティングシステムによる実行のためのソフトウェア命令を含む、第58節に記載のコンピューティングシステム。 Section 61. 59. The computing system of clause 58, wherein the system manager module includes software instructions for execution by the computing system.
第62節。複数のユーザの各々について、
ユーザの代わりに1つ以上のソフトウェアプログラムを実行するために使用するための望ましいプログラム実行容量を判別することと、ユーザのための望ましいプログラム実行容量に対する自動化された修正を後で開始するために、1つ以上の容量修正トリガを判別することと、
ユーザに判定された望ましいプログラム実行容量を提供するために使用するための、複数の利用可能なコンピューティングノードの群を1回目にユーザに自動的に関連付けることと、
1回目の後の後の2回目で、群のうちのコンピューティングノードからユーザに利用可能な実際のプログラム実行容量を1回目の後で自動的に判別することであって、2回目の実際のプログラム実行容量は、1回目にユーザに提供された望ましいプログラム実行容量とは別である、判別することと、
各々、1回目の後に生じ、かつ、各々、望ましいプログラム実行容量の関連付けられた修正を有する、複数の独立したイベントに基づいて、2回目にユーザに提供される修正された望ましいプログラム実行容量を自動的に判別することであって、複数の独立したイベントは、満たされると判定される容量修正トリガの少なくとも1つを含み、かつ、ユーザによって動的に指定される少なくとも1つの容量修正命令を含み、2回目に修正された望ましいプログラム実行容量は、複数の独立したイベントの関連付けられた修正の総計に基づく、判別することと、
2回目に修正された望ましいプログラム実行容量を、2回目に判定された実際のプログラム実行容量に調和させるように、2回目に群の一部であるコンピューティングノードを自動的に修正することであって、修正されたコンピューティングノードは、修正された望ましいプログラム実行容量をユーザへ提供するために使用するためのものである、修正することと、により、システムマネジャーモジュールは、ネットワークでアクセス可能なサービスの複数のユーザについて、プログラム実行容量を管理するための手段で構成される、第58節に記載のコンピューティングシステム。
Section 62. For each of multiple users
To determine a desired program execution capacity for use to execute one or more software programs on behalf of a user and to initiate automated modifications to the desired program execution capacity for the user later Determining one or more capacity correction triggers;
Automatically associating a group of a plurality of available computing nodes with a user for a first time for use to provide the user with the desired program execution capacity determined;
After the first time, the second time after the first time is to automatically determine the actual program execution capacity available to the user from the computing nodes in the group after the first time. Determining that the program execution capacity is different from the desired program execution capacity provided to the user for the first time;
Automatic modified desired program execution capacity provided to the user a second time, each based on multiple independent events, each occurring after the first and each having an associated modification of the desired program execution capacity The plurality of independent events includes at least one of the capacity modification triggers determined to be satisfied and includes at least one capacity modification instruction dynamically specified by the user. Determining a desired program execution capacity modified a second time based on a sum of associated modifications of multiple independent events;
The second is to automatically modify the computing nodes that are part of the group to match the desired program execution capacity modified the second time with the actual program execution capacity determined the second time. The modified computing node is for use to provide the modified desired program execution capacity to the user, and the modifying allows the system manager module to be a network accessible service. 59. The computing system of clause 58, comprising means for managing program execution capacity for a plurality of users.
上記から、例証のために本明細書に特定の実施形態が記載されているが、本発明の精神および範囲から逸脱せずに多様な修正を行うことができることが理解されよう。従って、本発明は、添付の請求項およびそこで列挙されている要素により限定される場合を除いて制限されない。さらに、本発明の特定の態様は、特定の請求の形態で以下に表されているが、発明者は、任意の利用可能な請求の形態の、本発明の多様な態様を検討する。例えば、本発明のいくつかのみの態様が、コンピュータ可読媒体において具現化されるものとして現在、列挙されてもよく、他の態様も、同様に、そのように具現化されてもよい。 From the foregoing, it will be understood that although particular embodiments have been described herein for purposes of illustration, various modifications may be made without departing from the spirit and scope of the invention. Accordingly, the invention is not limited except as by the appended claims and the elements recited therein. Furthermore, while specific aspects of the invention are set forth below in certain claim forms, the inventors contemplate the various aspects of the invention in any available claim form. For example, only some aspects of the invention may currently be enumerated as being embodied in a computer readable medium, and other aspects may be similarly embodied as such.
Claims (20)
構成されたコンピューティングシステムによって、第1のユーザの代わりに1つまたは複数のソフトウェアプログラムを実行するために使用するための初期のプログラム実行容量を提供するために、第1の時刻に前記第1のユーザに関連付けられる複数のコンピューティングノードの第1の群の表示を受信するステップと、
前記構成されたコンピューティングシステムによって、前記第1の時刻と後の第2の時刻との間に生じ、かつ、各々、前記第1の群のプログラム実行容量の修正をもたらす能力がある、複数のイベントを識別するステップと、
前記構成されたコンピューティングシステムによって、前記第2の時刻に前記第1の群のコンピューティングノードから前記第1のユーザへ利用可能な実際のプログラム実行容量を判別するステップであって、前記第2の時刻の前記実際のプログラム実行容量は、前記第1の群のコンピューティングノードに対する変更に少なくとも部分的に基づいて、前記第1の時刻に提供された前記初期のプログラム実行容量とは別である、判別するステップと、
前記構成されたコンピューティングシステムによって、前記第1の群のコンピューティングノードに対する変更に1つまたは複数の原因を結論付けるステップであって、前記1つまたは複数の原因は、2つ以上の識別されたイベントの組み合わせである、結論付けるステップと、
前記構成されたコンピューティングシステムによって、前記第1の群のコンピューティングノードに対する変更について前記結論付けられた1つまたは複数の原因の表示を提供するステップと
を含むことを特徴とするコンピュータで実装される方法。 A computer-implemented method for determining causal relationships for dynamic modification in program execution capacity provided to a user, comprising:
In order to provide an initial program execution capacity for use by a configured computing system to execute one or more software programs on behalf of a first user, said first at a first time. Receiving a display of a first group of a plurality of computing nodes associated with a user of:
The configured computing system has a plurality of capabilities that occur between the first time and a later second time, and each is capable of providing a modification of the program execution capacity of the first group. Identifying the event;
Determining the actual program execution capacity available to the first user from the first group of computing nodes at the second time by the configured computing system, the second The actual program execution capacity at a time is different from the initial program execution capacity provided at the first time based at least in part on changes to the first group of computing nodes. A step of determining,
Concluding one or more causes for a change to the first group of computing nodes by the configured computing system, the one or more causes being identified by two or more A concluding step, which is a combination of events
Providing a display of the concluded one or more causes for changes to the first group of computing nodes by the configured computing system. Method.
前記プログラム実行サービスによって、前記第1の時刻の前に前記第1のユーザから前記初期のプログラム実行容量のリクエストを受信するステップと、
前記第1のユーザに前記初期のプログラム実行容量を提供するために使用するために、前記第1の時刻に前記第1のユーザに、コンピューティングノードの前記第1の群を自動的に関連付けるステップと
を含むことを特徴とする請求項2に記載のコンピュータで実装される方法。 Receiving the indication of the first group comprises:
Receiving, by the program execution service, a request for the initial program execution capacity from the first user before the first time;
Automatically associating the first group of computing nodes with the first user at the first time for use to provide the initial program execution capacity to the first user. The computer-implemented method of claim 2, comprising:
前記第2の時刻の前に、前記第1の群のコンピューティングノードに対する前記判別された単一の総計された修正を開始するステップと
をさらに含むことを特徴とする請求項4に記載のコンピュータで実装される方法。 Based on a sum of a first requested modification of the at least one satisfied capacity modification trigger and a second requested modification of the at least one capacity modification instruction from the first user; Automatically determining a single aggregate modification to increase the first group of computing nodes to increase the first group of program execution capacity;
5. The computer of claim 4, further comprising the step of initiating the determined single aggregated correction for the first group of computing nodes prior to the second time. The method implemented in
1つまたは複数のプロセッサと、
第1のユーザの代わりに1つまたは複数のソフトウェアプログラムを実行するために使用するための初期のプログラム実行容量を提供するために、第1の時刻に前記第1のユーザに関連付けられる複数のコンピューティングノードの第1の群の表示を受信する手段と、
前記第1の時刻と後の第2の時刻との間に生じ、かつ、各々、前記第1の群のプログラム実行容量の修正をもたらす能力がある、複数のイベントを識別する手段と、
前記第2の時刻に前記第1の群のコンピューティングノードから前記第1のユーザへ利用可能な実際のプログラム実行容量を判別する手段であって、前記第2の時刻の前記実際のプログラム実行容量は、前記第1の群のコンピューティングノードに対する変更に少なくとも部分的に基づいて、前記第1の時刻に提供された前記初期のプログラム実行容量とは別である、判別する手段と、
前記第1の群のコンピューティングノードに対する変更に1つまたは複数の原因を結論付ける手段であって、前記1つまたは複数の原因は、2つ以上の識別されたイベントの組み合わせである、結論付ける手段と、
前記第1の群のコンピューティングノードに対する変更について前記結論付けられた1つまたは複数の原因の表示を提供する手段と
を備えたことを特徴とするコンピューティングシステム。 A computing system configured to determine causality for dynamic modification in program execution capacity provided to a user, comprising:
One or more processors;
A plurality of computers associated with the first user at a first time to provide an initial program execution capacity for use to execute one or more software programs on behalf of the first user. Means for receiving an indication of the first group of storage nodes;
Means for identifying a plurality of events that occur between the first time and a later second time, and each is capable of effecting a modification of the program execution capacity of the first group;
Means for determining an actual program execution capacity available to the first user from the first group of computing nodes at the second time, the actual program execution capacity at the second time; Means for determining that is separate from the initial program execution capacity provided at the first time based at least in part on a change to the first group of computing nodes;
Means for concluding one or more causes for a change to the first group of computing nodes, wherein the one or more causes are a combination of two or more identified events Means,
Means for providing an indication of the concluded one or more causes for changes to the first group of computing nodes.
前記第2の時刻の前に、前記第1の群のコンピューティングノードに対する前記判別された単一の総計された修正を開始する手段と
をさらに備えたことを特徴とする請求項18に記載のコンピューティングシステム。 Based on a sum of a first requested modification of the at least one satisfied capacity modification trigger and a second requested modification of the at least one capacity modification instruction from the first user; Means for determining a single aggregate modification to increase the first group of computing nodes to increase the first group of program execution capacity;
The method of claim 18, further comprising means for initiating the determined single aggregated correction for the first group of computing nodes prior to the second time. Computing system.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/569,723 US8352609B2 (en) | 2009-09-29 | 2009-09-29 | Dynamically modifying program execution capacity |
US12/569,744 US8689225B2 (en) | 2009-09-29 | 2009-09-29 | Attributing causality to program execution capacity modifications |
US12/569,723 | 2009-09-29 | ||
US12/569,744 | 2009-09-29 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012531096A Division JP5486687B2 (en) | 2009-09-29 | 2010-09-27 | Conclusion to causal program execution capacity modification, and dynamic modification of program execution capacity |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014089776A true JP2014089776A (en) | 2014-05-15 |
JP5868442B2 JP5868442B2 (en) | 2016-02-24 |
Family
ID=43826606
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012531096A Active JP5486687B2 (en) | 2009-09-29 | 2010-09-27 | Conclusion to causal program execution capacity modification, and dynamic modification of program execution capacity |
JP2014031946A Active JP5868442B2 (en) | 2009-09-29 | 2014-02-21 | Conclusion to causal program execution capacity modification, and dynamic modification of program execution capacity |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012531096A Active JP5486687B2 (en) | 2009-09-29 | 2010-09-27 | Conclusion to causal program execution capacity modification, and dynamic modification of program execution capacity |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP2483797A4 (en) |
JP (2) | JP5486687B2 (en) |
CN (3) | CN104331334B (en) |
CA (1) | CA2774297C (en) |
SG (2) | SG179098A1 (en) |
WO (1) | WO2011041253A1 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102646B (en) * | 2013-04-07 | 2019-01-15 | 腾讯科技(深圳)有限公司 | The method, apparatus and system of data processing |
US11140045B2 (en) | 2015-07-31 | 2021-10-05 | Microsoft Technology Licensing, Llc | Changelog transformation and correlation in a multi-tenant cloud service |
CN108632067B (en) | 2017-03-21 | 2020-12-08 | 华为技术有限公司 | Disaster recovery deployment method, device and system |
US10824413B2 (en) * | 2018-07-23 | 2020-11-03 | International Business Machines Corporation | Maintenance of computing nodes concurrently in a number updated dynamically |
CN110968590A (en) * | 2019-12-23 | 2020-04-07 | 北京奇艺世纪科技有限公司 | Task execution method and device, electronic equipment and computer readable storage medium |
CN111831944B (en) * | 2020-07-09 | 2021-09-28 | 腾讯科技(深圳)有限公司 | Multimedia processing method, device, client, server and storage medium |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003084989A (en) * | 2001-09-12 | 2003-03-20 | Nec Corp | Priority dynamic control system, priority dynamic control method, and priority dynamic control program |
JP2005196601A (en) * | 2004-01-09 | 2005-07-21 | Hitachi Ltd | Policy simulator for autonomous management system |
JP2005250818A (en) * | 2004-03-04 | 2005-09-15 | Hitachi Ltd | Program execution service provision method |
US20060173857A1 (en) * | 2005-01-31 | 2006-08-03 | Cassatt Corporation | Autonomic control of a distributed computing system using rule-based sensor definitions |
US20080059557A1 (en) * | 2006-03-31 | 2008-03-06 | Desantis Peter N | Executing programs based on user-specified constraints |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6779030B1 (en) * | 1997-10-06 | 2004-08-17 | Worldcom, Inc. | Intelligent network |
US7590739B2 (en) * | 1999-11-22 | 2009-09-15 | Akamai Technologies, Inc. | Distributed on-demand computing system |
US6957343B2 (en) * | 2001-03-30 | 2005-10-18 | Intel Corporation | Validating keying material by using a validation area of read-only media to prevent playback of unauthorized copies of content stored on the media |
US7680799B2 (en) * | 2005-01-31 | 2010-03-16 | Computer Associates Think, Inc. | Autonomic control of a distributed computing system in accordance with a hierarchical model |
US7543020B2 (en) * | 2005-02-10 | 2009-06-02 | Cisco Technology, Inc. | Distributed client services based on execution of service attributes and data attributes by multiple nodes in resource groups |
US8190682B2 (en) * | 2006-03-31 | 2012-05-29 | Amazon Technologies, Inc. | Managing execution of programs by multiple computing systems |
CN101127130A (en) * | 2006-08-14 | 2008-02-20 | 林伟龙 | Safe recording and control system for automobile |
US8767535B2 (en) * | 2007-07-11 | 2014-07-01 | Hewlett-Packard Development Company, L.P. | Dynamic feedback control of resources in computing environments |
US8396846B2 (en) * | 2007-12-13 | 2013-03-12 | International Business Machines Corporation | Database trigger modification system and method |
-
2010
- 2010-09-27 SG SG2012017281A patent/SG179098A1/en unknown
- 2010-09-27 JP JP2012531096A patent/JP5486687B2/en active Active
- 2010-09-27 CA CA2774297A patent/CA2774297C/en active Active
- 2010-09-27 CN CN201410648530.7A patent/CN104331334B/en active Active
- 2010-09-27 SG SG2013004551A patent/SG188079A1/en unknown
- 2010-09-27 EP EP10821079.0A patent/EP2483797A4/en not_active Withdrawn
- 2010-09-27 CN CN201410646174.5A patent/CN104331333B/en active Active
- 2010-09-27 WO PCT/US2010/050351 patent/WO2011041253A1/en active Application Filing
- 2010-09-27 CN CN201080041786.1A patent/CN102511041B/en active Active
-
2014
- 2014-02-21 JP JP2014031946A patent/JP5868442B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003084989A (en) * | 2001-09-12 | 2003-03-20 | Nec Corp | Priority dynamic control system, priority dynamic control method, and priority dynamic control program |
JP2005196601A (en) * | 2004-01-09 | 2005-07-21 | Hitachi Ltd | Policy simulator for autonomous management system |
JP2005250818A (en) * | 2004-03-04 | 2005-09-15 | Hitachi Ltd | Program execution service provision method |
US20060173857A1 (en) * | 2005-01-31 | 2006-08-03 | Cassatt Corporation | Autonomic control of a distributed computing system using rule-based sensor definitions |
US20080059557A1 (en) * | 2006-03-31 | 2008-03-06 | Desantis Peter N | Executing programs based on user-specified constraints |
Also Published As
Publication number | Publication date |
---|---|
WO2011041253A1 (en) | 2011-04-07 |
CN102511041A (en) | 2012-06-20 |
JP5868442B2 (en) | 2016-02-24 |
JP2013505519A (en) | 2013-02-14 |
EP2483797A1 (en) | 2012-08-08 |
CN104331334A (en) | 2015-02-04 |
CN104331333A (en) | 2015-02-04 |
CN102511041B (en) | 2014-12-10 |
EP2483797A4 (en) | 2013-08-07 |
CA2774297A1 (en) | 2011-04-07 |
CN104331334B (en) | 2018-04-06 |
SG188079A1 (en) | 2013-03-28 |
CN104331333B (en) | 2018-09-18 |
SG179098A1 (en) | 2012-05-30 |
JP5486687B2 (en) | 2014-05-07 |
CA2774297C (en) | 2015-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11762693B1 (en) | Dynamically modifying program execution capacity | |
US10360083B2 (en) | Attributing causality to program execution capacity modifications | |
US11425194B1 (en) | Dynamically modifying a cluster of computing nodes used for distributed execution of a program | |
US8812646B1 (en) | Predicting long-term computing resource usage | |
US8745218B1 (en) | Predictive governing of dynamic modification of program execution capacity | |
JP5868442B2 (en) | Conclusion to causal program execution capacity modification, and dynamic modification of program execution capacity | |
US9280390B2 (en) | Dynamic scaling of a cluster of computing nodes | |
US9451013B1 (en) | Providing instance availability information | |
US8321558B1 (en) | Dynamically monitoring and modifying distributed execution of programs | |
US10555145B1 (en) | Learned configuration of modification policies for program execution capacity | |
US9306814B1 (en) | Providing instance availability information | |
US20240202044A1 (en) | System and method for dynamic provisioning of cloud desktop pools from multiple public cloud providers | |
US10592262B1 (en) | Managing shared computing environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140221 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150804 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151001 |
|
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: 20151208 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160105 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5868442 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 |
|
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 |