CN102934083B - 管理程序执行能力的私有使用 - Google Patents
管理程序执行能力的私有使用 Download PDFInfo
- Publication number
- CN102934083B CN102934083B CN201180013470.6A CN201180013470A CN102934083B CN 102934083 B CN102934083 B CN 102934083B CN 201180013470 A CN201180013470 A CN 201180013470A CN 102934083 B CN102934083 B CN 102934083B
- Authority
- CN
- China
- Prior art keywords
- program
- user
- executive capability
- execution
- reserved
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000000875 corresponding Effects 0.000 claims description 46
- 230000004044 response Effects 0.000 claims description 40
- 238000000034 method Methods 0.000 claims description 11
- 230000000977 initiatory Effects 0.000 claims description 10
- 230000002596 correlated Effects 0.000 claims description 7
- 210000001503 Joints Anatomy 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 16
- 238000009826 distribution Methods 0.000 abstract description 11
- 238000003860 storage Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 9
- 230000002452 interceptive Effects 0.000 description 7
- 230000002085 persistent Effects 0.000 description 5
- 238000002360 preparation method Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000001419 dependent Effects 0.000 description 3
- 210000001519 tissues Anatomy 0.000 description 3
- 230000018199 S phase Effects 0.000 description 2
- 230000003111 delayed Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005553 drilling Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002708 enhancing Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005304 joining Methods 0.000 description 2
- 101710031899 moon Proteins 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001960 triggered Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000002567 autonomic Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000001413 cellular Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000001809 detectable Effects 0.000 description 1
- 230000005059 dormancy Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000000737 periodic Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000000135 prohibitive Effects 0.000 description 1
- 230000000644 propagated Effects 0.000 description 1
- 230000001105 regulatory Effects 0.000 description 1
- 230000001052 transient Effects 0.000 description 1
Abstract
描述了用于管理程序的执行的技术,包括使用一个或多个计算系统的额外程序执行能力。例如,可基于为用户分配的未使用的专用程序执行能力为该用户维持私用额外计算能力池,私用额外能力池可供该用户优先使用。除了可供多个用户(任选地包括与私用额外能力池相关的用户)使用的通用、非私用额外计算能力池以外,还可在一些实施方案中提供这样的私用额外能力池。在一些这样的情况下,额外计算能力可变得可用来在临时基础上执行程序,使得使用额外能力执行的程序可在任何时间终止,如果对额外能力的其它优选使用产生。
Description
背景
很多公司和其它组织操作计算机网络,其使很多计算系统互连以支持其例如与协同定位(例如,作为局部网络的部分)或相反位于(例如经由一个或多个私用或公共中间网络来连接的)多个不同的地理位置中的计算系统的操作。例如,容纳相当大数量的互连计算系统的数据中心变得平凡,例如由单个组织或代表单个组织操作的私有数据中心和由作为企业的实体操作来向客户提供计算资源的公共数据中心。一些公共数据中心操作员为各种客户拥有的硬件提供网络接入、功率和安全安装设施,而其它公共数据中心操作员提供还包括可供其客户使用的硬件资源的“全服务”设施。然而,当一般数据中心的规模和范围增加时,供应、操纵和管理物理计算资源的任务变得日益复杂。
用于商品硬件的虚拟化技术的出现提供了关于为具有各种需要的很多客户管理大规模计算资源的一些益处,允许各种计算资源有效地且安全地被多个客户共享。例如,虚拟化技术例如由VMWare、XEN、Linux的KVM(基于内核的虚拟机)或用户模式Linux提供的技术可通过给每个用户提供由单个物理计算机托管的一个或多个虚拟机来允许单个物理计算机在多个用户当中被共享,每个这样的虚拟机是充当不同的逻辑计算系统的软件模拟,其给用户提供他们是给定的硬件计算资源的唯一的操作员和管理员的假象,同时也在各种虚拟机当中提供应用隔离和安全。
附图简述
图1A和1B是示出交互作用的示例性实施方案的网络图,以管理程序执行服务的多个用户可用的程序执行能力的使用。
图2A和2B示出用于管理多个计算节点的程序执行能力的使用的技术的例子。
图3是示出用于由多个用户管理计算节点的使用的计算系统的示例性实施方案的方框图。
图4示出程序执行服务系统管理器例程的示例性实施方案的流程图。
图5A和5B示出额外能力使用管理器例程的示例性实施方案的流程图。
图6示出专用能力使用管理器例程的示例性实施方案的流程图。
图7示出立即响应可变能力使用管理器例程的示例性实施方案的流程图。
详细描述
描述了用于管理程序的执行的技术。在至少一些实施方案中,使用一个或多个计算系统的额外计算能力为多个用户管理程序的执行。特别是,在至少一些这样的实施方案中,对于一个或多个用户中的每个,私用额外计算能力池例如基于被分配来由该相关用户私用使用的当前未使用的程序执行能力而对该用户维持并与该用户相关,且私用额外计算能力池可供相关用户优先使用。除了可供多个用户(任选地包括与私用额外计算能力池相关的一个或多个用户)使用的一般非私用额外计算能力池以外,还可在一些实施方案中提供这样的私用额外计算能力池。在一些实施方案中可结合代表多个客户或服务的其他用户来执行多个程序的程序执行服务(PES)(例如提供用于执行用户程序的多个计算节点(例如,在一个或多个物理计算系统上托管的多个物理计算系统和/或虚拟机)的程序执行服务)来使用技术。此外,在至少一些实施方案中,这些技术的一些或全部可自动由程序执行服务系统管理器模块的实施方案执行,如在下面更详细地描述的。
在一些实施方案中,PES或其它组的计算节点的至少一些额外的或否则未使用的程序执行能力可变得可用来代表用户在临时或未保证的基础上执行程序,使得额外程序执行能力可用来执行这样的程序,直到程序执行能力为了其它目的(例如,为了执行一个或多个其它程序的优先或预备的使用)而被需要时。这样的额外程序执行能力可例如经由具有动态地变化的定价来反映供应和需求的现货市场或替代地以其它方式变得可用来作为可供各种用户(例如,提供通用额外计算能力池的PES的任何客户)使用的一个或多个通用的额外计算能力池的部分。在一些情况下,可在额外程序执行能力为了其它目的而被需要时使用额外程序执行能力代表用户执行一个或多个程序,且在一些这样的情况下,那些一个或多个程序的执行可被PES自动终止(例如,关闭、中止等),以便使额外程序执行能力对其它目的变得可用。在至少一些这样的实施方案中,自动终止的程序可代表用户在未来的时间例如当足够量的额外程序执行能力再次变得可用来执行用户的程序时的未来时间自动重新开始。可选地,不是终止使用期望用于其它目的的额外程序执行能力的一个或多个程序,在一些实施方案和情况中,其它程序执行能力可以被识别并代替期望用于其它目的的额外程序执行能力来使用,以便使利用额外程序执行能力的一个或多个程序能够继续执行。下面包括与使用额外程序执行能力有关的额外的细节。
在一些实施方案中,从用于执行程序的PES可用的至少一些程序执行能力可被分配给一个或多个用户以由那些用户优先使用,使得那些用户的每个相对于其他用户对使用相应量的程序执行能力有优先访问。例如,用户的优先访问可基于每个用户对使用相应量的程序执行能力具有专用或排他的访问(例如,每个用户具有为了在执行程序时用户的预备或保证的使用而分配的一个或多个专用计算节点和/或其部分),或每个用户替代地具有一定量的程序执行能力,其等效于奉献给用户的从多个用户所使用的较大组的多个计算节点可用的一个或多个计算节点)。在至少一些这样的实施方案中,PES的相应量的程序执行能力可以用例如与一个或多个物理计算系统的租借类似的方式为了在规定的一段时间内的专门访问而被分配给特定的用户,使得相应量的程序执行能力可用来在规定的这段时间期间代表用户执行程序。此外,在一些实施方案中,可以给用户优先或其它专门访问以基于一个或多个因素例如由用户支付的费用,对用于使用在一段时间内的专门访问的合同责任的协定等来执行程序。
在至少一些实施方案中,被分配给一个或多个用户用于专用或其它优先使用的至少一些程序执行能力可在一些时间(例如当所分配的专用能力不用于优先使用时和/或当专用能力被分配给的用户使所分配的专用能力变得可用作额外能力时)用作额外程序执行能力。以这种方式,被分配给第一组用户的至少一些程序执行能力可不时地变得可用来临时代表其他用户执行程序。当对来自多个用户的额外程序执行能力的需求大于当前的可用供应时,特定的用户和程序可被选择来以各种方式使用额外程序执行能力。例如,在一些实施方案中,请求额外程序执行能力来执行程序的用户可以基于一个或多个因素来被提供优于其他这样的用户的优先权,这些因素例如是由用户提供和/或支付的费用、对使用额外程序执行能力的请求被提交的时间、额外程序执行能力使用被再次请求开始的时间、额外程序执行能力使用被再次请求完成的时间量或最终期限、再次请求的额外程序执行能力的类型和/或量(例如,计算节点的规定数量)等。下面包括与专用程序执行能力的使用有关的额外细节。
此外,如前面提到的,在至少一些实施方案中,一个或多个用户可每个具有相关的私用额外计算能力池,用户对该池有排他或优先访问。例如,如果用户具有一个或多个计算节点的专用计算能力,但目前不使用该专用能力的一些或全部,则用户可被给予对使用未使用的专用能力作为在为用户执行程序时的私用额外计算能力池的优先访问。在一些实施方案中,用户的这样的私用额外计算能力池可响应于来自用户的明确指令来建立(例如,对于来自用户的费用),而在其它实施方案中,具有未使用的专用计算能力的一些或所有这样的用户可每个基于其未使用的专用计算能力来自动接收私用额外计算能力池。此外,如果用户使用其自己的未使用的专用计算能力来自动接收私用额外计算能力池,则用户可能在一些实施方案中不知道私用池。
用户的这种私用额外计算能力池的使用可在各种实施方案和情况中向用户提供益处。例如,在一些实施方案中,用户利用其专用计算能力的在进行中的边际成本可能低于用户利用来自通用池的可比较的量的额外计算能力—如果是这样,用户使用其自己的私用额外计算能力池的成本可以按小于通用池的使用的成本的速率被设置(例如,可以与用户利用其专用计算能力的在进行中的边际成本相同的成本,可以在用户利用其专用计算能力的在进行中的边际成本和使用来自通用池的额外计算能力的较高成本之间,等等)。此外,在一些实施方案中,用户可在其自己的私用池中接收对额外计算能力的排他或优先访问,使得用户能够使用其私用池立即执行额外计算能力请求,即使该相同的请求将没有使用通用额外计算能力池立即执行的足够高的优先权。因此用户执行程序的这种私用额外计算能力池的使用可提供不同于从执行程序的通用额外计算能力池的使用出现的至少一些其它程序执行特征的有益的程序执行特征,例如在规定时间间隔内规定数量的程序执行能力的使用的较低边际成本、相对于通用池获得对来自私用池的计算能力的访问的增强的可用性、使用相对于通用池来自私用池的计算能力继续程序的执行的增强的能力等中的一个或多个。
作为私用额外计算能力池的使用的一个特定的例子,第一个用户可为了特定的目的而发起多个计算节点的专门使用,但维持预备的那些多个计算节点的一部分(例如,以保留总的多个计算节点的20%作为备份用于可能的以后使用,例如能够响应于高于预期的计算负荷而自动调整用于特定目的的计算节点和/或能够代替用于特定目的的任何计算节点(如果它们变得不可用)—在这样的情况下,预备的计算节点可用作第一个用户的第一私用额外计算能力池,虽然它们并不用于特定的目的,但预备的那些计算节点为了特定的目的对第一个用户是可用的,如果它们随后被需要。作为私用额外计算能力池的使用的另一特定的例子,第二个用户可发起多个计算节点的专门使用,但使用预期由第二个用户使用的多个计算节点的全部作为第二个用户的第二私用额外计算能力池—第二私用额外计算能力池可接着用于实现来自与第二个用户相关的多个实体的请求(例如,如果第二个用户代表组织,且多个实体是不同的组或组织内的人;多个实体是第二个用户出售对第二私用额外计算能力池的访问的第三方,等等),例如以与在本文对管理来自多个用户的对使用通用额外计算能力池的多个请求描述的技术类似的方式。此外,如果第二个用户的第二私用额外计算能力池用于实现来自多个实体的请求,则那些请求的管理和该第二私用池在一些实施方案中由PES和/或程序执行服务系统管理器("PESSM")模块的第三方操作员执行(例如,向第二个用户收的费用),而在其它实施方案中,第二个用户可获得并使用PESSM模块或以其它方式被启动以代表自己执行这样的行动。而且,在一些实施方案中,对用户使用的专用能力计算节点的一些或全部可由该用户提供或以其它方式由该用户管理,例如如果上面提到的第一个和/或第二个用户提供分别用于第一和第二额外计算能力池的至少一些计算节点。
如果用户具有私用额外计算能力池,且存在也可用的单独的通用额外计算能力池,则不同的额外计算能力池可用各种方式被使用。例如,如果这样的用户做出对使用额外计算能力的请求,则该请求可首先使用该用户的私用池来被满足,如果它具有对该请求的足够的计算能力,且否则该请求连同来自其他用户的请求可以被考虑由通用额外计算能力池满足。类似地,如果通过使用用户的私用额外计算能力池对这样的用户执行一个或多个第一程序,且该额外计算能力为了其它目的(例如,以为用户执行一个或多个其它第二程序作为用户的专用计算能力的部分)而被用户需要,则所述一个或多个第一程序的执行在一些实施方案中可自动移动到通用额外计算能力池(例如,通过不终止地继续第一程序的执行,例如通过识别并使用其它可用计算能力来用作用户的专用计算能力的替换部分;通过在作为用户的专用计算能力的部分的一个或多个计算节点上终止第一程序的执行,并使用作为通用额外计算能力池的部分的其它计算节点以立即和快速的方式发起第一程序的进一步执行;通过在作为用户的专用计算能力的部分的一个或多个计算节点上终止第一程序的执行,并将对进一步执行第一程序的请求连同对使用通用额外计算能力池的其它请求放置在请求队列中;等等)。下面包括与私用额外计算能力池的使用有关的额外细节。
除了上面讨论的专用和额外计算能力的类型以外,PES还可包括立即响应可变程序执行能力,其在一些实施方案中可用来满足用户的至少一些动态地接收的请求以执行程序(例如,紧接着在那些用户请求时、在所指示的未来时间、在所指示的未来时间段期间的某个时间等),使得由这样的请求指示的一个或多个程序可以被执行,如果足以满足所请求的执行的计算资源在(或接近)所请求的时间是可用的,但没有这样的请求被保证满足(即,没有足够的计算资源被保证是可用的)。例如,在立即响应可变程序执行能力请求被接收以代表用户动态地执行一个或多个程序(例如,对于立即执行)之后,可为用户执行所述一个或多个程序,如果适当量的立即响应程序执行能力当前可用来执行那些程序(例如,如果确定存在具有资源以满足请求的足够数量的可用计算节点),且否则该请求可以被拒绝(或在一些情况下,被延迟)。因此,在一些这样的实施方案中,对立即响应可变程序执行能力的这样的请求可能是不成功的,例如如果适当量的程序执行能力不可用来在所请求的执行的时间执行所述一个或多个程序(例如,如果确定没有具有足够的资源来满足对立即执行的请求的足够的当前可用的计算节点)。
在一些实施方案中,用于提供立即响应可变程序执行能力的计算节点可不同于用于提供专用程序执行能力的计算节点和/或不同于用于提供额外程序执行能力的计算节点—因此,如果用于提供立即响应可变程序执行能力的一些计算节点不在使用中,在一些实施方案中,它们可用于提供额外程序执行能力,直到立即响应可变程序执行能力请求被接收到,而在其它实施方案中,它们可以不用于提供这样的额外程序执行能力。此外,在一些实施方案中,在对立即(或排定的)执行的立即响应可变程序执行能力请求被满足并代表相应的用户成功地发起一个或多个程序的执行之后,立即响应可变程序执行能力的在进行中的使用可被保证来继续,直到某个未来时间,例如相应的用户选择(例如,基于从相应的用户接收的终止程序执行能力的使用和/或释放程序执行能力的指示)的时间和/或基于通过用户的设计(例如,代表用户执行的所述一个或多个程序自动终止该执行,例如当完成任务时或以其它方式;与代表相应的用户执行的一个或多个程序交互作用的应用和/或其他用户终止该执行,例如如果为了其它用户的交互使用而提供的对相应的用户执行的所述一个或多个程序,等等)。可选地,在一些实施方案中,可用程序执行能力的被保证的在进行中的使用可能受到某些限制,例如被保证PES将不为了其它目的而优先取得使用,但不被保证防止执行程序的计算节点的故障。
此外,如前所述,在至少一些实施方案中,PES的专用程序执行能力功能可供一个或多个用户使用,使得所述一个或多个用户的每个可具有由PES分配的并保证可用来代表一个或多个用户执行程序的专用的某个量的程序执行能力(例如,由PES提供的专用数量的一个或多个专用计算节点、由PES的一组一个或多个计算节点提供的计算资源的专用部分等)。例如,专用程序执行能力的被保证的可用性可结合一个或多个QoS("服务质量")标准来提供,例如专用程序执行能力将在发起所指示的程序的执行之后的一段规定的时间(例如,相应于终止使用额外计算能力的其它程序的执行和开始所指示的程序的执行的一段时间)内是可用的。与立即响应可变程序执行能力功能和额外程序执行能力功能相反,专用能力功能的用户可具有某个规定量的程序执行能力,其被保证可用来在一段规定的使用期期间代表用户执行程序、禁止使PES的服务变得不可用(例如,服务故障、维护等)的无法预料的和/或偶然的事件。
此外,在PES提供专用计算能力、额外计算能力和立即响应可变计算能力中的两个或多个的实施方案中,与不同类型的计算能力相关的费用可在各种方式上不同,例如以反映相关的可用性保证和/或其它因素。作为一个例子,用户利用特定量的专用计算能力的总成本可以高于用户利用可比较的量的立即响应可变计算能力(如果可用)的成本,且用户利用立即响应可变计算能力的成本可以高于用户利用来自通用池的可比较的量的额外计算能力(如果可用)的成本——然而在一些情况下,使用专用计算能力的成本可能包括不基于实际使用的一次或周期性费用和用户在特定数量的时间内利用特定量的专用计算能力的单独的在进行中的边际成本,特定量的专用计算能力使用的在进行中的边际成本任选地小于在该段时间内使用可比较的量的通用额外计算能力池的成本。此外,如上所述,使用私用额外计算能力池的成本可以不同于使用通用额外计算能力池的成本,例如在一些实施方案中与对专用计算能力使用的在进行中的边际成本相同。下面包括与定价和成本有关的额外细节。
图1A是示出管理多种类型的程序执行能力的使用以执行多个用户的程序的例子的网络图。为了例证性目的,下面描述一些例子和实施方案,其中特定类型的程序执行能力被提供并以特定的方式被管理。这些例子为了例证性目的而被提供,并为了简洁起见而被简化,且将认识到,发明技术可以在各种其它情况下使用,下面只描述其中一些情况。
在图1A的例子中,很多用户通过网络100与程序执行服务系统管理器模块110的所示实施方案交互作用,以在可用来执行用户的程序的一个或多个计算节点120上执行程序,PESSM模块110提供特定的程序执行服务(未示出)的一些或全部功能。特别是,在所示实施方案中,PESSM模块110和计算节点120由程序执行服务提供者105提供,作为所提供的程序执行服务的部分,且PESSM模块110可在一个或多个计算系统(未示出)上执行。在本例中,程序执行服务提供用于为各种用户管理在计算节点120上的程序的执行的各种功能。
在本实例中,各种远程用户130、140、150和160可通过网络100与PESSM 110交互作用,以代表用户配置和/或请求程序的各种类型的执行。在本实例中,远程用户包括一个或多个专用能力用户140、一个或多个额外能力用户150、一个或多个立即响应可变能力用户130和任选地一个或多个其它用户160,如下所述。网络100可例如是可能由各种不同的方操作的所链接的网络的公共可访问的网络,例如互联网。在其它实施方案中,网络100可以是私用网络,例如对无特权的用户全部或部分地不可访问的公司或大学网络。在又一些其它实施方案中,网络100可包括具有到和/或来自互联网的一个或多个私用网络。
所示计算节点120被提供来在代表用户执行程序时使用,且在一些实施方案中可包括多个物理计算系统和/或在一个或多个物理计算系统上托管的多个虚拟机(如关于图1B更详细地描述的)。每个计算节点120具有可用来执行一个或多个程序的某个数量的计算资源,并提供规定量的程序执行能力,例如可以例如通过处理能力(例如,处理单元的数量和/或尺寸)、记忆能力、存储能力、网络带宽能力等中的一个或多个的组合来测量。在一些实施方案中,PES提供者105可提供预先配置的计算节点,每个预先配置的计算节点具有可用来代表用户执行程序的类似和/或相等数量的资源,而在其它实施方案中,PES提供者105可提供用户可从中选择的用于代表用户执行程序的各种不同的计算节点的选择,例如每个选择具有变化的数量和/或类型的计算相关的资源(例如,处理单元的尺寸、速度和/或类型;处理单元的数量;记忆和/或存储的量;平台配置,例如32位或64位;等等)。
在一些实施方案中,各种用户130、140、150和160可与PESSM110交互作用,以规定用于代表用户执行程序的优选的和/或所需的资源(例如,通过规定一个或多个计算节点,等等)。在各种实施方案中,这样的资源可以在用于代表用户执行程序的请求的时间和/或在一个或多个其它时间被规定,例如当用户注册和/或预订来使用程序执行服务的服务时。在一些实施方案中,PESSM 110可向一个或多个用户提供预订和/或注册服务,使得用户可规定与代表用户执行的一个或多个程序有关的信息(例如,程序、源代码、一个或多个程序的可寻址的位置等)、账户信息(例如,用户名、记账信息等)、使用期限等。此外,在用户与PESSM 110交互作用以预订和/或注册服务之后,用户可在一些实施方案中被发给与用户相关并结合代表用户执行程序来使用的一个或多个标识符(例如,密钥、令牌、用户名、证书等)。在其它实施方案中,除了PESSM 110以外的模块可被提供来执行与PES的预订和/或注册服务相关的各种操作。
在所示实施方案中,一个或多个可变能力用户130与PESSM110交互作用以使用立即响应可变的程序执行能力例如通过提交对立即执行的请求和/或提供信息用于稍后执行来配置和/或请求一个或多个程序的执行。在对立即执行的请求被接收到之后,PESSM 110可确定是否有具有用于满足请求的可用资源的足够数量的计算节点120,且如果是这样,PESSM 110可代表用户发起对在适当数量的计算节点上的请求的一个或多个程序的执行。在用户安排对一个或多个程序的一个或多个未来执行的请求的情况下,PESSM 110可试图保留用于在一个或多个未来的时间执行一个或多个程序的适当数量的计算节点,和/或可延迟确定使用哪些计算节点在稍后的时间之前(例如,当一个或多个未来的时间出现时)执行。在所示实施方案中,如果PESSM 110不能分配用于执行可变能力用户请求的计算节点,该请求可能失败,使得程序未被执行。在这样的情况下,用户130可重新提交失败的请求用于以后执行。如前所述,在一些实施方案中,可变能力用户可例如基于所使用的计算节点的数量、所使用的计算节点的类型、所使用的计算节点的持续时间等来承担与PES的使用相关的各种费用。此外,虽然没有在这里示出,但某个部分的计算节点120可在一些实施方案中被规定为提供立即响应可变程序执行能力,而在其它实施方案中立即响应可变程序执行能力可用其它方式提供(例如,使用所有的计算节点120;使用为了另一目的例如为了专用能力而未被分配的所有计算节点120;等等)。
此外,在本实例中,计算节点120的子集被分配以由一个或多个专用能力用户140使用,使得一个或多个专用能力用户140中的每个可具有对在那些分配的计算节点的至少一些部分上执行用户的程序优先访问。例如,在一些实施方案中,专用能力用户140的每个可具有专用于在规定的一段使用时间期间执行该用户的程序的一个或多个计算节点120,使得用户可在规定的使用期期间的任何时间访问一个或多个计算节点以代表用户执行程序,和/或可连续地在规定时期的持续时间期间在所述一个或多个计算节点上执行程序。作为一个特定的例子,一个或多个专用能力用户140可进入与PES提供商105的长期(例如,1年期)协定中,使得那些用户的每个在协定期限内具有对一定数量的专用计算节点120的优先访问,作为对固定的费用支付的交换(例如,预付或定期付款),且在一些情况下,其它使用费(例如,与各种资源的使用相关的可变费用,例如电、物理机架空间、网络利用等)。
在专用能力用户140与PESSM 110交互作用以请求一定数量的专用计算节点的优先访问时,PESSM 110可分配来自计算节点120的一个或多个计算节点用于由用户专门使用。例如,在一些实施方案中,多个计算节点120的一个或多个特定的计算节点(例如,一个或多个特定的物理计算节点和/或虚拟计算节点)可被分配来在整个使用期内由相关的特定专用能力用户优先使用(例如,通过在注册的时间和/或一个或多个其它时间分配特定的计算节点),使得在使用期期间在专用计算节点上代表特定的专用用户执行程序的请求导致在特定的一个或多个分配的计算节点上的程序的执行的发起。在其它实施方案中,不是在整个使用期内将特定的计算节点分配给特定的专用用户,PESSM 110可相反分配来自具有多个计算节点的专用计算节点组的计算节点,使得具有足够的资源来由各种专用能力用户140满足执行请求的适当数量的计算节点可以在专用计算节点组中是可用的。在一些这样的实施方案中,在请求被接收以在一个或多个专用计算节点上执行专用用户140的一个或多个程序之后,足以执行程序的适当数量的计算节点120可在执行一个或多个程序的请求的时间从专用计算节点组选择。在选定数量的计算节点不再用于执行对专用用户140的请求之后(例如,在所请求的执行的终止和/或完成之后),那些计算节点可返回到专用计算节点组以由其它专用能力用户使用,且在一些实施方案中可进一步被跟踪为可用作该专用用户140的专用额外计算能力池的部分,如下所述。此外,在特定的专用能力用户140的使用期到期之后,被分配来由该用户使用的一个或多个计算节点可以类似地被释放以由其它用户使用,例如通过使计算节点可用来被分配来由一个或多个其它(例如,新的)专用能力用户使用。此外,PESSM 110可执行关于满足执行请求的一个或多个各种其它管理操作,例如实施使用期和/或与请求相关的其它限制和/或用户提交的请求、实现请求的释放计算资源、授权和/或认证请求和/或请求的用户,等等。在一些实施方案中,在用于对专用程序执行能力执行的请求的时间和请求被实现的时间之间可能引起延迟,例如用于执行各种管理操作的延迟期等。在各种其它实施方案中,可以使用各种其它技术来分配、跟踪、保留和/或释放专用能力用户的计算节点。
此外,在所示实施方案中,多个额外能力用户150与PESSM100交互作用以使用PES的额外程序执行能力来配置和/或请求一个或多个程序的执行—这样的额外能力用户可包括使用私用额外能力池和/或一个或多个通用额外能力池的用户。如前所述,额外程序执行能力可包括否则可被分配来用于其它用途的额外和/或未使用的程序执行能力,且在一些实施方案中可被分离成至少一个通用额外能力池,其包括不在使用中作为一个或多个其它专用额外能力池的部分的额外计算能力。例如,在所示实施方案中,额外程序执行能力可包括很多计算节点120,其以其它方式为了其它目的(例如,为了由专用能力用户140、可变能力用户130和/或其它用户160使用)而分配,但目前没有用于那些目的。额外能力用户可在各种实施方案中例如通过指定用于执行程序的计算节点的数量和/或类型、要使用的计算节点的最小和/或最大数量、请求的到期时间、优选的执行时间和/或执行时期、对额外程序执行能力的使用的支付的一个或多个出价(例如,计算节点的每次使用的出价、每个某时间单位一个或多个计算节点的每次使用的出价、最小和/或最大出价等)以各种方式配置对程序的执行请求。
如关于图2A和2B进一步讨论的,PESSM 110的所示实施方案可确定何时从可供额外能力用户150使用的额外程序执行能力包括和/或移除一个或多个计算节点120,何时发起和/或终止对额外能力用户150的程序的所请求的执行,以及在可供额外能力用户使用来执行程序的计算节点120的哪个上。此外,PESSM 110可进一步跟踪多少额外能力对一个或多个额外能力用户150在对那些用户的私用额外能力池中是可用的,例如对于也是专用能力用户140的一些或所有额外能力用户150。在各种实施方案中,PESSM 110可确定一个或多个计算节点是未使用的/或否则可用来以各种方式由额外能力用户150使用。例如,在一些实施方案中,PESSM 110可从各种用户和/或实体接收一个或多个计算节点未被使用或否则可供额外能力用户使用的指示,例如来自一个或多个专用能力用户140的指示,这些用户不使用专用于由那些用户使用的某个数量和/或部分的计算节点。在一些这样的实施方案中,这样的专用能力用户可指示专用计算节点可能由专用能力用户调配为未使用的和/或可用的一个或多个时间(例如,一天的特定时间、特定的日子、时间段等)。此外,在一些实施方案中,一个或多个其它用户160可用类似的方式交互作用以指示一个或多个计算节点例如在一个或多个其它用户160(例如,未示出的第三方计算系统)的控制下的一个或多个计算节点可供额外能力用户使用。
在其它实施方案中,PESSM 110可例如通过监控一些或全部计算节点120以确定何时计算节点未被使用和/或通过跟踪这样的计算节点的一个或多个用户(例如,专用能力用户140、可变能力用户130、其它用户160等)的使用模式来自动确定计算节点何时对额外能力用户是可用的。在一些这样的情况下,确定计算节点是否是未使用的或否则未充分利用可包括例如基于一个或多个用户对计算节点的过去使用模式的分析来确定和/或预测计算节点将在足以执行一个或多个额外能力用户的程序的至少一段时间内保持未使用的概率。在各种实施方案中,足以执行一个或多个额外能力用户的程序的一段时间可基于一个或多个考虑因素,例如代表用户停止/开始程序的时间、配置计算节点用于使用的时间、代表额外能力用户执行的程序的类型(例如,某种类型的程序可在短时间段内执行有用数量的工作,例如各种类型的数据处理等,而其它程序在有用的结果产生之前使用较长的时间段),等等。
在确定了一个或多个计算节点120可供一个或多个额外能力用户150使用之后,这样的计算节点可被添加到通用可用额外程序执行能力池和/或否则被跟踪作为一个或多个私用额外能力池的部分,使得一个或多个计算节点可由PESSM 110使用以代表相应的额外能力用户150执行程序,直到计算节点的其它使用(例如,通过专用能力用户140、可变能力用户130和/或一个或多个其它用户或实体160的优先使用)产生的这样的时间为止。PESSM110可进一步确定在各种实施方案中额外能力计算节点中的一个或多个不再可供额外能力用户150以各种方式使用。例如,在一些实施方案中,PESSM 110可例如基于来自控制那些计算节点的用户160的停止使用计算节点的明确请求、在一个或多个计算节点上执行优先用户的程序的请求、规定的可用性时期的到期等来接收一个或多个计算节点不再是可用的指示。作为另一例子,在一些实施方案中,PESSM 110可例如基于从一个或多个用户接收相应于其它使用的请求或基于确定对一个或多个计算节点120的可能的要求(例如,基于探测到其它资源的增加的使用和/或计算节点可被使用的程序,等等)来自动确定计算节点的其它使用。
在一些实施方案中,额外能力用户150可与PESSM 110交互作用以在规定数量的额外计算节点上请求一个或多个程序的立即执行和/或在一个或多个未来的时间安排这样的执行,使得PESSM110可在规定数量的额外计算节点上发起所请求的执行,如果确定规定数量的额外计算节点在所请求的执行的时间是可用的。规定数量的额外计算节点是否在该时间是可用的确定可包括首先考虑用户的私用额外能力池(如果有的话)包括规定数量的额外计算节点,并选择这些额外计算节点来使用,如果它们是可用的。如果只有规定数量的额外计算节点的子集在私用额外能力池中对用户是可用的,则PESSM 110可在一些实施方案中选择那些私用额外计算节点来在部分地满足请求时使用,并试图从通用额外能力池获得其余的额外计算节点,或相反可用其它方式继续(例如,仅使用可用私用额外计算节点的子集满足请求;指示请求失败,因为私用额外能力池不包括所有规定数量的额外计算节点;试图只使用来自通用额外能力池的额外计算节点来满足请求;等等)。此外,在一些实施方案中,额外能力用户150可与PESSM 110交互作用以在待执行的规定数量的额外计算节点上请求一个或多个程序的执行,因为这样的额外计算节点变得可用来例如在所指示的未来时间段期间执行一个或多个程序,且在一些这样的实施方案中,PESSM 110可在它确定规定数量的额外计算节点在该时间段期间是可用的时在规定数量的额外计算节点上发起所请求的执行。在一些实施方案中,额外能力用户150可规定最小和/或最大数量的额外计算节点以用来执行所请求的执行,使得所请求的执行被发起,如果PESSM 110确定至少最小数量的额外计算节点是可用的(是否来自私用额外能力池和/或通用额外能力池),且PESSM 110可基于额外计算节点的可用性在多达最大(如果规定)数量的额外计算节点上对请求发起的所请求的执行。
在对代表额外能力用户150执行一个或多个程序的请求被接收到之后,如果PESSM110确定存在具有足够的计算资源来满足所请求的执行的适当数量的计算节点(是否来自专用额外能力池和/或通用额外能力池),PESSM可选择使用可用计算节点中的哪个来用于以各种方式进行所请求的执行。例如,在一些实施方案中,PESSM可例如通过随机地从可用计算节点池中选择来简单地从具有足够资源的可用计算节点的任一个中选择适当数量的额外计算节点。在其它实施方案中,一个或多个特定的计算节点可在一个或多个其它因素的基础上被选择,这些因素例如是所述一个或多个特定的计算节点的预测长度和/或继续可用性的概率,所述一个或多个特定的计算节点与一个或多个其它计算节点的物理接近度,所述一个或多个特定的计算节点和/或一个或多个其它计算节点的地理位置,等等。此外,如果一个或多个特定的计算节点专用来由特定的用户使用,那些特定的计算节点可以仅仅是用作该特定用户的私用额外能力池的部分的计算节点。
如前所述,在额外计算节点上的额外能力用户的程序的执行可以暂时的,使得PESSM 110可在对额外计算节点的其它优选使用产生时自动终止这样的程序(例如,如果额外计算节点被以前不使用专用计算节点的专用能力用户140收回,等等)。在这样的情况下,如果程序目前代表额外能力用户150在那些额外计算节点的任一个上执行,则那些程序可自动终止(例如,中断、关闭、休眠等),使得计算节点对于其它目的是自由的,且对额外能力用户不再是可用的。此外,如在其它地方更详细地讨论的,在一些实施方案中,那些程序的执行状态可在它们被终止之前被保存,例如以实现程序的稍后重启。此外,在一些这样的实施方案中,可能有目前代表额外能力用户150执行程序的多个额外计算节点,额外能力用户150可能能够为了其它目的而满足计算节点的数量,且在这样的情况下,PESSM 110可基于各种因素(例如,通过首先从用户的私用额外能力池收回额外能力计算节点以在对专用额外使用实现来自该用户的请求时使用;或通过在额外能力用户的当前请求当中使用确定的优先权,例如基于所提交的时间、出价价格等)来确定额外计算节点中的哪个对其它目的是自由的。在一些实施方案中,至少一些终止的程序可以使其执行在一个或多个其它可用额外能力节点(如果有的话)上例如立即或在稍后的时间被迁移和/或重启。在一些这样的情况下,如果没有可用来满足执行程序(或请求程序的执行)的所有当前的额外能力用户150的足够的额外计算节点,则PESSM 110可确定终止在一个或多个其它额外计算节点上执行的一个或多个额外程序,使得最初被终止的在特定的计算节点上执行的一个或多个程序可以在最新释放的额外计算节点上重启(例如,基于额外能力用户的确定的优先权,使得与一个或多个最初终止的在特定的计算节点上执行的程序相关的请求具有比与一个或多个额外的程序相关的至少一些请求高的优先权)。在一些实施方案中,在PESSM 110自动终止用户的程序之后,PESSM 110可自动重启程序的执行,因为额外计算节点变得可用来执行用户的程序。此外,在其它实施方案中,用户的至少一些终止的程序可在具有可用来执行程序的足够的计算资源的一个或多个其它计算系统和/或程序执行服务上自动迁移和/或重启,包括经由被提供到可变能力用户130的可变能力功能、被提供到专用能力用户140的专用能力功能而可用的一个或多个计算节点和/或在PES外部的一个或多个第三方计算系统(未示出)。
此外,各种类型的程序可更好地适合于在如额外能力池提供的这样的临时执行环境中执行,例如相对容忍由于偶然终止而引起的意外中止的程序。在一些实施方案中,额外能力用户可对设计成间歇地跟踪和/或保存进展(例如,中间结果、当前运行时间状态等)的额外程序执行能力执行一个或多个程序,使得程序可在未来的时间重新开始以再继续活动。此外,在一些实施方案中,当PESSM 110自动终止在额外计算节点上执行的程序时,PESSM110可自动探测当前的系统和/或程序执行状态,使得所探测的状态可被保存和/或提供给相应的额外能力用户150,以便程序的随后执行可在类似于当程序自动终止时的状态中重新开始。可选地,如果特定的执行程序能够保存其自己的执行状态,则PESSM 110可替代地通知程序在终止程序之前执行其自己的执行状态保存。关于保存程序执行状态的示例性实施方案的额外细节包括在2008年12月12日提交的且标题为“Saving ProgramExecution State”的美国专利申请号12/334,004中,该专利特此通过引用被全部并入。
如前所述,在至少一些实施方案中,具有私用额外能力池的用户接收对该私用额外能力池中的任何程序执行能力的优先访问(例如,以便在来自任何其他用户的任何额外能力请求之前执行来自用户的任何额外能力请求),但如果这样的私用额外能力池包括对于私用池目前不由相关用户使用的额外能力,该目前可用的额外能力可经由通用额外能力池对其他用户变得暂时可用。此外,在至少一些实施方案中,对来自通用额外能力池的用于代表多个额外能力用户150执行程序的额外计算节点的访问可基于在额外能力用户150当中的优先权,使得如果对执行程序的两个或多个请求之间的某个数量的额外计算节点存在争论,则具有较高相关优先权的请求将被提供对使用争论数量的额外计算节点用于执行程序的访问。在至少一个例证性实施方案中,可以给具有最高出价金额(例如,最高的最大出价)的请求提供高于具有较低出价的请求的优先权,出价金额之间的联系基于其它因素来解决(例如,该请求在早些时候被接收)。在一些实施方案中,额外能力用户150中的一个或多个可与PESSM 110的实施方案交互作用以对通用额外能力池的一个或多个可用额外计算节点(例如,当前可用的和/或在一个或多个未来的时间可用的)的访问进行出价(例如,拍卖型),使得具有获胜出价的用户可接收对一个或多个可用额外计算节点的访问。在一些实施方案中,PESSM 110可自动终止与较低优先权请求相关的目前正在一个或多个额外计算节点上执行的程序的执行,有利于在所述一个或多个额外计算节点上执行较高优先权请求的程序。在一些其它实施方案例如基于非优先权的实施方案中,PESSM 110可替代地偶然在未决的请求中循环,以在额外计算节点上执行程序,使得每个请求可以在一个或多个额外计算节点上被提供某个数量的执行时间。
在一些实施方案中,PESSM 110可向与PESSM 110交互作用的一个或多个额外能力用户150提供交互式反馈,以配置和/或请求在通用额外能力池的某个数量的额外计算节点上的程序的执行。例如,在一些这样的实施方案中,交互式反馈可包括何时和/或多长时间所请求的程序可能例如基于当前和/或预测的要求、当前和/或可能数量的额外计算节点、一个或多个出价水平等在所指示数量的额外计算节点上执行。在一个例证性实施方案中,PESSM110可指示所建议的出价水平以及指示所请求的执行何时可能出现和/或完成的相应信息,使得额外能力用户150可重新配置(例如,通过规定不同的出价、不同数量和/或类型的计算节点、不同的执行持续时间等)请求以满足额外能力用户的需要,使得请求可在较早的时间被执行,等等。
如前所述,额外能力用户150可例如基于正对用户使用的额外程序执行能力是否是该用户的私用额外能力池的部分、基于所使用的计算节点的数量和/或一个或多个使用因素(例如,所使用的时间的量、所消耗的共享资源的量、计算节点被使用的时间的量等)、和/或基于来自所述一个或多个额外能力用户150对计算节点的使用的一个或多个出价来承担与额外程序执行能力的使用联合的各种费用。在一些实施方案中,使用通用额外计算能力池的所述一个或多个额外能力用户150承担的费用的一部分可以被提供给提供在该通用额外能力池中的计算节点的一个或多个其它用户(例如,一个或多个专用能力用户140、一个或多个其它用户160等)。例如,在一些实施方案中,这样的其它用户可被付给从额外能力用户收集的某个数量的费用的比例份额,例如反映由其它用户随着时间的过去贡献的计算节点的数量的比例份额。在一些情况下,提供给其他用户的这样的费用可以由PES提供商自动贷记和/或支付给其它用户,以便抵消由那些其他用户引起的其它费用,例如由专用能力用户引起的费用。
此外,在一些实施方案中,PESSM 110可向一个或多个专用能力用户140提供电子市场(未示出),使得一个或多个专用能力用户140可在专用能力的使用时间段期间将对其专用计算节点的访问转移到一个或多个其它用户160,而在其它实施方案中,专用能力用户140和其它用户160可以用在PES外部的方式安排交换。在一些实施方案中,用户160可向专用能力用户提供支付以交换对专用能力用户的专用计算节点的所转移的部分的访问,使得购买用户可访问专用程序执行能力的所转移的部分来代表购买用户执行程序。所交换的访问的价格可在各种实施方案中以各种方式确定,例如经由专用能力用户所规定的固定价格,由用户160出价或建议的价格,等等。在一些实施方案中,对专用计算节点的交换可产生,使得该交换是临时的和/或永久的。例如,在一些实施方案中,交换可以在规定的有限时间段和/或各种时间间隔内产生,使得购买用户可在该规定时间期间和/或在各种时间间隔期间访问计算节点,其后专用计算节点可重新回到专用能力用户以由专用能力用户使用。在其它实施方案中,交换可以是永久的,使得购买用户可在与专用计算节点相关的任何剩余使用期内被提供对专用计算节点的访问。在一些实施方案中,作为用于由签约的专用能力用户140专门使用的一个或多个计算节点的初始分配的部分,PESSM 110可将一个或多个用户令牌分配给签约用户和/或可用其它方式使所分配的计算节点与签约专用能力用户的账户相关,使得计算节点的专用能力用户的使用可为了各种目的(例如,配置、授权、记账等)而被跟踪—在这样的实施方案中,当专用能力用户将其专用计算节点的一部分转移到新的用户时,任何所提供的令牌可转移到新的用户,和/或计算节点的部分可用其它方式与新用户的账户相关。在一些实施方案中,PESSM 110的提供商可进一步收集与专用计算节点的一部分从一个用户到另一用户的转移相关的费用。
虽然关于为各种类型的用户例如可变能力用户、专用能力用户和额外能力用户提供各种类型的功能的PES描述了图1A的前述示例性实施方案,但是将认识到,各种其它实施方案可能存在,例如有或没有各种类型的用户中的一种或多种的实施方案。例如,将认识到,可能存在一些实施方案,其中程序执行服务为额外能力用户提供功能,但不包括可变和/或专用能力用户,例如其中额外程序执行能力由与PES相关的一个或多个第三方和/或附属实体提供,例如以允许这样的方和/或实体货币化否则未被使用的计算资源。此外,一些技术可结合基于出价的PES来使用,基于出价的PES允许用户提交对程序的执行的请求和/或在临时基础上在服务所提供的所有程序执行能力上安排程序的执行,使得在执行时间时具有较高优先权的请求被执行。此外,将认识到,各种用户130、140、150和160可每个有时充当其他各种用户的一个或多个,例如当那些用户正访问相应于那些其他各种用户的类型的相关功能时,包括有时充当额外能力用户150并使用基于那些用户的未使用的专用能力的专用额外能力工具的专用能力用户140。作为另一例子,在一些实施方案中,充当专用能力用户来对专用程序执行能力执行程序的特定用户也可充当立即响应可变能力用户,例如当特定的用户希望额外的计算资源来为相应的用户执行一个或多个程序时,等等。
此外,在至少一些额外的实施方案中,计算节点120中的单个计算节点的未使用部分(例如,未使用的处理单元时钟周期、存储器的未使用部分等)可供一个或多个额外能力用户150使用,使得所述一个或多个额外能力用户的一个或多个程序可与专用能力用户140和/或其它额外能力用户150共享单个计算节点的资源。此外,在一些实施方案中,被分配来由专用能力用户140使用的至少一些计算节点可供一个或多个可变能力用户130使用,例如如果确定这样的访问不可能影响专用能力用户(例如,在即将来临的要求的准确预测可被预见的情况下,等等)。此外,在一些实施方案中,如果专门由一个或多个专用能力用户140使用的某个数量的计算节点被过量预订(例如,销售过多和/或被提供给一个或多个其它长期用户),使得过量预订的计算节点在所述一个或多个专用能力用户140请求使用它们时对那些用户是不可用的,则在过量预订的计算节点上执行的一个或多个程序可迁移到一个或多个其它计算节点,例如在一个或多个远程数据中心中可用的一个或多个其它计算节点和/或可用来执行所述一个或多个程序的其它计算系统,例如由另一程序执行服务提供的计算系统,等等。
此外,虽然关于程序执行服务和程序执行能力描述了一些实施方案,但将认识到,所述技术可用于管理对各种其它组的计算节点或其它类型的计算相关的资源的访问。可被管理来由多个用户使用的其它类型的计算相关的资源的例子的非排他性列表可包括下列项:持久数据存储能力(例如,在非易失性存储设备例如硬盘驱动器上);临时数据存储能力(例如,在易失性存储器例如RAM上);消息排队和/或传递能力;其它类型的通信能力(例如,网络套接、虚拟通信电路等);数据库管理能力;专用带宽或其它网络相关的资源;输入设备能力;输出设备能力;处理器(例如,CPU)周期或其它指令执行能力等。例如,用户可请求要使用的一种或多种所指示的类型的计算相关的资源,且PESSM模块可自动确定每种所指示的类型的资源的数量(例如,基于由用户在请求中指示的明确数量或其它量,基于与特定的资源类型相关的预定数量,基于所指示的资源类型的可用数量,等等),以为用户提供例如第一量的易失性记忆和第二量的永久存储。
图1B示出程序执行服务可使用包括多个物理计算系统的一个或多个数据中心来提供的实施方案。特别是,图1B示出程序执行服务的PESSM模块180代表用户管理一个或多个程序的执行的示例性实施方案。所示实例包括由PES使用的数据中心170,PES连接到在数据中心170外部的互联网196。在本实例中,互联网196经由私用网194提供对各种外部计算系统例如计算系统190的访问和对其它计算系统192以及在一个或多个其它数据中心198处的另外的计算系统(未示出)的访问。私用网194可以是例如从私用网194外部的非特许计算系统全部或部分地不可访问的公司网。计算系统192可包括例如直接连接到互联网(例如,经由电话或电缆调制解调器、数字用户线(DSL)等)的家庭计算系统。此外,在至少一些实施方案中,所述一个或多个其它数据中心198可进一步由PES使用。
示例性数据中心170包括多个物理主机计算系统175、物理计算系统182和PES的PESSM模块180。在本实例中,主机计算系统175每个提供多个虚拟机177并具有虚拟机(VM)管理部件179来管理那些虚拟机(例如,超级监视器或其它虚拟机监控器),且一些或所有计算系统182可类似地具有一个或多个这样的虚拟机和/或VM管理部件(未示出)。可选地,在其它实施方案中,在数据中心处的一些或所有物理主机计算系统可以不提供任何虚拟机,例如以替代地代表PES的最终用户客户直接执行一个或多个程序。此外,在一些实施方案中,各种计算系统175和182可具有不同的能力,可具有对使用的不同相关费用,可支持不同类型的用户程序(例如,不同尺寸的虚拟机软件图像实例,或具有不同类型的资源标准和/或计算资源使用的程序,例如不同模式的I/O和存储器访问和网络使用),等等。如果是这样,特定的用户和/或其程序可以根据可进一步被用作约束和/或偏好的一个或多个这样的因素被分组(例如,自动),关于这些约束和/或偏好来选择计算系统用于执行特定的程序。示例性数据中心170还包括内部网络172,其可包括多个联网设备(未示出),例如交换机、边缘路由器和核心路由器,计算系统175和182以及执行PESSM模块180的一个或多个计算系统(未示出)连接到内部网络172。
所示PESSM模块180执行至少一些所描述的技术,以便使用计算系统175和182来管理程序的执行,如在其它地方更详细地描述的。当特定的计算节点或系统被选择来执行用户的一个或多个程序时,PESSM模块可在一些实施方案中通过与为这个选定的计算节点/或系统控制程序的执行的VM管理部件或其它管理部件交互作用来发起那些程序的执行,或可以可选地直接在选定的计算节点/系统上执行程序。PES的用户可使用各种计算系统来与PESSM模块180例如技术系统190或192或在其它数据中心198之一处的计算系统交互作用。
将认识到,仅为了例证的目的而提供图1B的数据中心,以及在其它实施方案中可以用其它方式提供程序执行服务和其它软件执行服务。例如,可替代地使用在数据中心170外部的一个或多个其它计算系统例如计算系统190、192或在数据中心198处提供PESSM模块180。在其它实施方案中,可以在不使用任何数据中心的情况下提供PES。
图2A和2B示出用于管理额外计算节点的使用的技术的实例,例如可由PESSM模块的实施方案自动执行的技术。特别是,图2A示出从通用额外计算能力池接收并处理对使用额外计算能力的请求的实例,在图2A中的没有一个示例性用户具有相关的私用额外计算能力池。图2B继续图2A的实例,但用户之一具有私用额外计算能力池,以及各种请求的处理包括该私用额外计算能力池的使用。
关于图2A,表格200示出关于在时间205期间程序执行服务的各种用户对程序执行服务的多个计算节点210的使用的信息,每个计算节点210的使用以连续的时间间隔205a-205o示出。此外,表格250示出关于由程序执行服务接收以使用程序执行服务的通用额外计算能力池的额外计算节点代表用户执行程序的示例性请求A、B、C和D的信息。在所示表格200中,阴影如下被使用:具有实心灰背景的时间间隔(例如,专用计算节点212b的时间间隔205a和其它计算节点214a的时间间隔205h)指示相应的计算节点不可用来在该相应的时间间隔期间对额外程序执行能力使用(例如,它为了一个或多个其它目的而被使用和/或在其它方面是不可用的);具有实心白背景的时间间隔(例如,专用计算节点212c的时间间隔205b和205c)或具有对角线背景的时间间隔(例如,专用计算节点212b的时间间隔205f和其它计算节点214b的时间间隔205o)指示相应的计算节点不可用来在该相应的时间间隔期间用作额外程序执行能力;以及包含字母A、B、C或D的时间间隔(例如,专用计算节点212a的时间间隔205f-205k)指示对额外程序执行能力的相应请求的程序在该时间间隔期间在相应的计算节点上执行。作为一个例证性的实例,每个时间间隔205a-205o可相应于一个小时或替代地相应于其它时间间隔(例如,一天、10分钟等)。
如前所述,表格250示出由程序执行服务在各种指示的时间接收的各种请求,使得各种请求中的每个使用计算节点210在从程序执行服务可用的规定数量的额外计算节点上执行一个或多个程序。此外,在本实例中,请求中的每个具有各种规定的配置信息,包括执行请求的所述一个或多个程序的规定的最小或最大数量的计算节点;用户愿意为在每个计算节点上执行所述一个或多个程序支付的出价费用金额(例如,单个计算节点的每使用小时的美元金额);以及请求将到期的时间的指示(例如,执行时间的规定总持续时间,在该执行时间之后请求将到期,请求将到期的规定时间,等等)。作为一个例证性的例子,请求A在大约相应于时间间隔205c的时间(例如,恰好在时间间隔205c之前或在时间间隔205c期间)被接收到,最小和最大数量的计算节点都指示对在单个额外能力计算节点上执行的偏好,单个额外计算节点的每使用小时出价为$0.05,且没有规定的到期(例如,指示该请求连续地执行和/或重新执行,直到程序执行完成)。在本实例中,所有的计算节点210可大致或确切地提供每时间间隔相同量的计算能力,而在其它实施方案中,标准量的程序执行能力可以用其它方式指示(例如,使用相应于特定数量的计算资源的逻辑“计算节点”度量,以及使用关于它们提供的逻辑“计算节点”的数量评定的特定实际计算节点)。在其它实施方案中,各种请求可用其它方式来配置,例如以包括要使用的规定的特定类型的计算节点的一个或多个(例如,和/或这样的计算节点的特征)、最小和/或最大出价金额、和/或一个或多个其它配置(例如,默认容差需要、执行地点和/或接近偏好等)。此外,可在一些实施方案中指示其它类型的信息,例如将对每个请求执行的一个或多个特定的程序、对该请求的总计算节点时间间隔的总数量等。
所示表格200包括多个专用能力计算节点212,例如为了专门访问程序执行服务的一个或多个特定的专用能力用户而分配的计算节点,并且还包括多个其它计算节点214,例如其它类型的程序执行能力(例如,立即响应可变程序执行能力)可以采用的计算节点。例如,专用能力用户(未示出)可以在规定的一段时间(例如,一年)内具有对特定的计算节点212a的优先访问,使得用户可访问计算节点212a以代表用户在规定的这段时间期间的任何时间执行程序,虽然这样的访问可能在获得访问的用户一方遭受延迟期和/或一个或多个交互作用(例如,在特定的时间使用计算节点212a的意图的通知,在计算节点212a上执行程序的请求,等等)。在其它实施方案中,专用能力用户(未示出)可替代地具有与计算节点212a相同的计算资源的计算节点的优先访问(例如,相同的处理能力、记忆等),但没有特别分配的计算节点212,使得用户可被提供对等效于212a的用于代表用户执行程序的且可供使用的任何计算节点212的访问。在各种这样的实施方案中,程序执行服务可确保等效于212a的足够数量的专用计算节点可由可以用各种方式具有对这样的计算节点的优先访问的专用用户使用(例如,维持一组这样的计算节点和/或以其它方式保留特定数量的这样的节点,等等)。
在表格200中,在间隔205a-c期间,专用计算节点212c例如基于未被计算节点212c分配到的专用能力用户使用而被确定为额外能力,并因此可供额外能力用户使用。例如,专用能力用户可与程序执行服务交互作用以指示计算节点212c可以例如在时间间隔205a之前的某个时间用于额外程序执行能力,或程序执行服务可替代地自动确定计算节点212c未被使用。在所示实例中,所有其它所示计算节点(例如,212a-b、212d和214a-b)被确定为在间隔205a-205c期间是可用的。在时间间隔205c期间,请求A被接收到,且程序执行服务确定为了$0.05/小时的用户规定的费用而在可用额外能力计算节点212c上执行与请求A相关的程序,并在计算节点212c上发起程序的执行。在其它实施方案中,程序执行服务可替代地具有一些或所有额外能力用户使用的固定价格费用。
在时间间隔205d,程序执行服务确定计算节点212c不再可用来满足额外程序执行能力请求(例如,基于从收回计算节点的使用的专用能力用户接收的指示),所以与请求A相关的程序的执行在计算节点212b上终止。在间隔205f处,程序执行服务确定具有足够的资源来执行请求A的两个计算节点(例如,专用计算节点212a和212b)作为额外能力计算节点是可用的,并确定在专用计算节点212a上重新开始请求A的程序的执行。在所示实施方案中,关于专用计算节点212b的在时间间隔205f处的对角线指示节点212b在该时间间隔期间对用作额外计算能力是可用的,但对额外计算能力使用不是优选的,且因此不被选择来满足请求A。计算节点212b由于各种原因不是优选的,例如它具有短和/或不确定的可用性持续时间(例如,如由程序执行服务例如基于来自它被分配给的专用能力用户的指示、基于以前的使用历史、基于预料的使用等来确定的),而节点212a可被确定为具有可能比节点212b相对更长的可用性。在这样的情况下,程序执行服务可对选择用于执行额外能力用户的请求的具有较长可能的可用性的计算节点有偏好,例如以最小化必须在各种计算节点210上开始/停止执行程序,等等。因此,在本实例中,计算节点212b在时间间隔205f期间未被使用,但如果另一额外计算能力请求在时间间隔205f之前被接收到,则节点212b仍然可用于该另一请求。
在本实例中,请求B在间隔205g处被接收到,如表格250所示的。在这种情况下,只有一个在那个时间可用的额外计算节点(例如,专用计算节点212a),且程序执行服务例如基于具有比请求A(例如,$0.05/小时)更高的出价金额或否则具有更高的优先权的请求B(例如,$0.08/小时)来确定终止请求A的程序而不是请求B的程序的执行。在本实例中,请求B在时间间隔205g-205i内为了$0.08/小时的费用而在专用计算节点212a上连续被执行。在时间间隔205i处,两个计算节点作为额外计算节点(专用计算节点212a和212d)是可用的,每个计算节点具有用于执行请求B的程序的足够资源-因为请求B规定最多两个计算节点,在所示实施方案中请求B的程序保持在节点212a上执行,且也在节点212d上被发起。
在时间间隔205j处,三个专用计算节点被确定为可用作额外能力计算节点(计算节点212a、212c和212d),且请求C被接收到。在这个实施方案中,请求B的程序从在专用计算节点212d和212a上的执行终止,且与请求C相关的一个或多个程序在基于具有对在最多三个节点上执行的所指示的优先权和具有比请求A和B相对高的出价金额(例如,$0.10/小时)的请求C而在所有三个可用额外计算节点上被执行,因而提供比对请求A和B更高的对请求C的优先权。在时间间隔205k处,两个专用计算节点例如基于为了其它目的而被收回或以其它方式变得不可用的计算节点212d来被确定为可用作额外计算节点(计算节点212a和212c)。与请求C相关的一个或多个程序在计算节点212d上被终止,但例如基于对请求C的优选的最大和最小数量的计算节点而保持在节点212a和212c上执行,且请求C具有比请求A和B更高的优先级。请求C的程序继续在时间间隔205l处在计算节点212c上执行,但在计算节点212a上的执行由于计算节点变得对额外计算能力使用不可用而终止。在时间间隔205l之后,程序执行服务确定请求C在时间间隔205j-205l期间被执行了至少三个小时,并因此到期。因此,程序执行服务终止在额外能力计算节点上与请求C相关的程序的执行,且请求C不再被处理为待满足的未决请求。在时间间隔205m处,一个计算节点(专用计算节点212c)被确定为继续对用来用作额外程序执行能力,且与请求B相关的程序的执行在计算节点上重新开始。
在时间间隔205m期间,请求B的程序的执行结束(例如,基于在总计5个小时的执行之后完成其执行的程序,或替代地基于被接收以取消来自提交了请求B的额外能力用户的请求B的指令(未示出)),且请求B不再被处理为待满足的未决请求。此外,在这个时间处或附近,具有与以前接收的请求A相等的出价金额(例如,$0.05/小时)的请求D被接收到。在这种情况下,程序执行服务基于在比D更早的时间接收到的请求A来确定在下一时间间隔205n处在可用专用计算节点212c上重新开始执行与请求A相关的程序而不是与请求D相关的程序。请求A继续在节点212c上执行,直到在时间间隔205o之后的某个未知的未来时间为止。在间隔205o处,其它计算节点214b之一对用作额外程序执行能力变得可用,并被确定为非优选的额外能力计算节点,但请求D的程序仍然在其它计算节点214b上执行,因为没有其它额外计算节点是当前可用的。
在图2A的所示实例中,程序执行服务可进一步跟踪相应于各种请求A-D的计算节点210的使用,使得各种相关的用户承担相应于各种请求所指示的出价金额的费用。此外,程序执行服务也可跟踪哪个计算节点210被使用和/或可供额外能力用户使用,以便可给与那些计算节点相关的一个或多个用户提供从额外能力用户收集的费用的某个部分。
图2B继续图2A的实例,但用户之一具有私用额外计算能力池,且各种请求的处理包括私用额外计算能力池的使用。图2B以与图2A的方式类似的方式示出信息200和250,但有一些改变以反映私用额外计算能力池的使用,如下所述。此外,相对于图2A,新信息260和270被添加到图2B。
特别是,在图2B的实例中,提交请求B的用户(在图2B中被称为请求者B*)也是专用能力用户,并在包括时间间隔205a-205o的一段时间内被分配计算节点212a的专门使用,如信息270所示的。因此,在图2B中,计算节点212a的阴影改变以包括双向影线来反映计算节点212a的任何未使用的能力可用来用作请求者B*的私用额外能力池。在本实例中,计算节点212a的时间间隔205a-205e和205l-205o相应于请求者B*对计算节点212a的专门使用,且因此计算节点212a在时间间隔205f-205k期间可用来用作请求者B*的私用额外计算能力池的部分。如在其它地方更详细讨论的,来自请求者B*的请求具有对私用额外计算能力池的使用的优先权。
在图2B中对时间间隔205a-205i的分配与图2A中的相同。例如,来自请求者B*的请求B在图2A中已经基于具有在图2A中比请求A高的对通用额外计算能力池的优先权而被分配来在图2A中的时间间隔205g-205i内使用计算节点212a,且因此在图2B中的私用额外计算能力池的计算节点212a的使用不改变那些现有分配。然而,在时间间隔205j内接收到请求C之后,分配在图2B中相对于图2A基于私用额外计算能力池的使用而改变。特别是,在图2A中,对于通用额外计算能力池,给请求C比请求A和B更高的优先权,且因此在图2A中在时间间隔205j处可用的所有三个额外计算能力节点开始执行请求C的程序。然而关于图2B,来自请求者B*的请求B继续在时间间隔205j处对请求者B*的私用额外计算能力池中的额外计算能力有最高优先权—因此,请求C的程序在图2B中类似地开始在时间间隔205j处在计算节点212c和212d上执行,但请求B的程序在图2B中继续在该时间间隔处以与图2A的方式不同的方式在计算节点212c和212d上执行。特别是,因为来自请求者B*的请求在时间间隔205j处是可用的,该请求(在本实例中,请求B)被给了使用计算节点212a的额外计算能力的优先权,该计算节点212a是请求者B*的私用额外计算能力池的部分。类似地,在随后的时间间隔205k处,如果请求B的程序继续执行,那些程序将继续为了相同的原因基于比请求C对请求者B*的私用额外计算能力池的请求B的更高优先权在计算节点212a上执行。然而,在本实例中,因为请求B在总计5小时的程序执行之后结束,请求B的程序在时间间隔205j之后结束。因此,在时间间隔205k处计算节点212a的额外计算能力返回到通用额外计算能力池,且请求C的程序开始在时间间隔205k内在计算节点212a上执行。
因此,私用额外计算能力池的使用在图2B的实例中为请求者B*提供各种益处。例如,作为第一个益处,请求B在图2B的实例中更快地完成,特别是到图2B中的时间间隔205j结束而不是在图2A中的时间间隔205m结束为止。此外,作为第二益处,在图2B的实例中,请求B的性能比图2A中的请求B的性能对请求者B*更廉价地执行。特别是,在图2B的实例中,以与使用专用计算节点212a的进行中的边际成本相同的费率向请求者B*收取请求者B*对私用额外计算能力池的使用的费用,该费率在本实例中是每时间间隔小时$0.04,如在信息270中所示的。因此,虽然在图2A中的请求B的性能对于请求B的程序的总计5个小时的每个的执行将使请求B花费每时间间隔小时$0.08的出价(即,两倍于对使用专用计算节点212a的进行中的边际成本的每个时间间隔小时的金额),但在图2B中,执行请求B的成本对于私用额外计算能力池被使用的总计5个小时中的四个小时仅为每时间间隔小时$0.04,如在成本信息260g-260j中所示的。对于在图2B中请求B在作为通用额外计算能力池的部分的计算节点212d上执行的其它时间间隔小时,以每时间间隔小时$0.08的请求B出价收取成本,如在成本信息260z中所示的。因此,用于执行图2B中的请求B的总成本是$0.24,而用于执行图2A中的请求B的总成本是$0.04。虽然根据额外计算能力的有限的使用量,在本实例中绝对数字小,但将认识到,在真实世界情况下将这样的额外计算能力增加相当大的量可能导致相应地较大的实际成本节约(例如,如果使用增加一千倍,根据$2400而不是$4000的实际成本,在本实例中相应的节约将是~$1600)。
此外,在其它情况下,甚至可以比在图2B的实例中更廉价地执行请求B。例如,在图2B中,使用通用额外计算能力池(即,对计算节点212d的时间间隔205i的使用)来执行请求B的程序的执行的总计5个小时中的一个(即,总合计执行小时的20%),且不使用来自私用额外计算能力池的可用的其它小时(即,对计算节点212a的时间间隔205k)。因此,在其它情况下,请求B的程序的执行可替代地对请求B的程序的全部执行使用私用额外计算能力池,因此对该执行的全部以私用额外计算能力池的较低成本被收费。私用额外计算能力池的这样的使用可以由例如替代地具有规定的最大的一个计算节点的请求B触发(使得只有私用额外计算能力池被使用,如果它是可用的)。可选地,在其它实施方案中,请求者B*可规定请求B(或一个或多个其它请求)只使用他/她的私用额外计算能力池来执行,而不是也使用通用额外计算能力池作为对私用额外计算能力池的补充。
此外,在一些实施方案中,可进一步以其它方式使用私用额外计算能力池以提供其它益处。例如,考虑与图2B的情况类似的情况,但其中请求B对于通用额外计算能力池的使用具有比请求C高的优先权(例如,如果请求C具有$0.07而不是$0.10的出价),其中请求B使用总计6个小时而不是总计5个小时来完成其程序的执行,且其中请求B规定使用最多一个计算节点而不是两个。在这样的情况下,并使用对前面图2B描述的分配方案,请求B将不从通用额外计算能力被选择来在时间间隔205i中使用计算节点212d(给出最多一个计算节点和对使用私用额外计算能力池的优先权),但将从私用额外计算能力被选择来在时间间隔205k中继续使用计算节点212a。然而,在这种情况下,在时间间隔205i结束时,请求B在完成以前仍将具有1个额外的执行小时,但在时间间隔205l处在私用额外计算能力池中的计算节点212a的可用性将基于在该时间间隔处请求者B*对专用能力的重新开始的使用而消失。因此,在这种情况下的一个选择将是在时间间隔205k结束时在计算节点212a上终止请求B的程序的执行,并在时间间隔205l期间在计算节点212c上在一个额外的小时内立即重新开始那些程序的执行。然而,在其它实施方案中,可采取其它可能的行动。例如,为了在结束以前仅留下短的时间时避免终止和接着重新开始请求B的程序的执行的开销,请求B的那些程序可替代地被允许在一些或全部时间间隔205l期间在计算节点212a上完成其执行。虽然希望在时间间隔205l中重新开始专用能力使用的请求者B*可能在这种情况中被推迟,但是适应在时间间隔205l中专用能力使用的这样的重新开始的可选方案包括选择另一计算节点来在至少时间间隔205l期间临时使用请求者B*的专用能力使用,例如计算节点212c。以这种方式,请求者B*在时间间隔205l中接收期望的专用能力使用,且请求B的程序的执行被允许更有效和快速地完成。尽管如此,在这样的实例中,为了完成请求B的程序的执行而在时间间隔205l期间计算节点212a的使用在至少一些这样的实施方案中可以不为了成本目的而被处理为私用额外计算能力池的部分,使得请求者B*可在时间间隔205l期间为了计算节点212c的使用而接收$0.04的专用能力使用价格,但在时间间隔205l期间使用计算节点212a执行请求B的程序可按$0.08的通用额外计算能力池价格来被收费以反映请求B的出价。将认识到,可以在其它实施方案和情况中使用其它可选方案。
此外,将认识到,为了例证性目的而提供前面的实例,且其它实施方案可在各种方面与该实例不同。例如,虽然计算节点210被描述为相同的(例如,具有相同的计算资源),但是可提供其它实施方案,其中各种计算节点210可以是具有变化的特征的不同类型(例如,不同数量的处理能力、记忆、平台规范等)。在一些这样的实施方案中,各种请求可包括在执行与请求相关的程序时使用的一种或多种特定类型的计算节点的指示,且那些请求可以只在相应的指定类型的计算节点上被执行。此外,在一些实施方案中,不是基于未使用的专用计算节点和如所示的其它计算节点的额外计算能力,可存在只有一组计算节点和/或另外组的计算节点可有助于可用来执行额外能力用户的请求的额外能力计算节点的实施方案。此外,在一些实施方案中,其它计算节点214的至少一些可包括由一个或多个第三方提供给程序执行服务的计算节点。
如前所述,各种类型的功能可在各种实施方案中被提供并由PES使用,且功能可以用各种方式被提供。例如,在一些实施方案中,从PES可用的程序执行能力可包括用于例如经由多个物理计算机代表用户执行程序的多个计算节点,多个物理计算机经由能够在计算机之间发送数据的一个或多个网络或其它数据交换介质而相互连接。至少一些计算机在一些实施方案中每个包括足够的计算相关的资源来同时执行多个程序(例如,足够的可写内存、非易失性存储器、CPU循环或其它CPU使用度量、网络带宽、交换空间等),且在一些这样的实施方案中的至少一些计算机每个可托管多个虚拟机计算节点,每个虚拟机计算节点可每个代表不同的用户执行一个或多个程序。此外,在各种实施方案中,PES可代表多个用户执行各种类型的程序。例如,代表用户执行的这样的程序可包括一个或多个操作系统、应用(例如,服务器和/或其它软件应用)、应用程序、库等。此外,在至少一些实施方案中,这样的程序可包括可执行软件图像,例如虚拟机图像,其可导入或以其它方式可装在一个或多个虚拟机计算节点上,且每个虚拟机图像可包括操作系统软件、一个或多个应用程序的软件、和/或配置信息等。
在至少一些实施方案中,通过PES在一个或多个计算节点上的一个或多个程序的执行可响应于对那些程序的立即执行的当前执行请求而发起。可选地,该发起可基于以前接收的程序执行请求,其被安排或以其它方式保留那些程序在现在-当前时间的然后-未来执行。程序执行请求可以用各种方式例如直接从用户(例如,经由交互式控制台或由程序执行服务提供的其它GUI)或从用户的执行程序接收,该执行程序自动发起一个或多个其它程序或它自己的其它实例的执行(例如,经由程序执行服务所提供的API或应用编程接口,例如使用Web服务的API)。程序执行请求可包括在一个或多个程序的执行的发起中使用的各种信息,例如待执行的程序的可执行或其它拷贝、以前注册或以其它方式提供来执行的程序的指示、以及将被同时执行的程序的很多实例(例如,被表示为个别期望数量的实例、最小和最大数量的期望实例等),以及用于执行一个或多个程序的各种其它类型的偏好和/或要求(例如,资源分配、用于执行的地理和/或逻辑位置、与其它程序和/或计算节点的执行接近度、定时相关的标准等)。
在接收到在所指示的时间执行程序的一个或多个实例的请求之后,PES可确定在执行程序实例时使用的一个或多个计算节点。在一些实施方案中,待使用的计算节点的确定在请求时被执行,即使用于未来的执行。在其它实施方案中,用于一个或多个程序实例的未来执行的计算节点的确定可被推迟到以后的时间,例如在基于接着可用的信息的未来执行时间。在一些实施方案中,哪个计算节点用于代表用户执行一个或多个程序的确定可在执行请求之前作出,例如在用户签约和/或注册来使用PES时的时间,和/或在对执行用户的程序的请求的另一时间。例如,在一些这样的实施方案中,一个或多个计算节点可在一段时间内与用户相关,使得程序可代表该用户在相关的计算节点上在该时期期间的任何时间被执行,例如在请求被接收以在该时期期间为用户执行软件的任何时间。此外,在一些实施方案中,使用哪个计算节点来代表用户执行程序的确定可在一个或多个计算节点和/或一个或多个计算节点的计算资源变得可用来执行用户程序时作出,例如当计算节点是未使用的和/或否则可用来执行程序时的时间在一个或多个计算节点上执行一个或多个未决请求的程序。
使用哪些计算节点来每个程序实例的确定可用各种方式作出,包括基于在请求中规定的或以其它方式为程序和/或相关的用户规定的任何偏好和/或要求(例如,在注册时,等等)。例如,如果为程序实例(例如,内存和/或存储器、CPU类型、循环或其它执行度量、网络容量、平台类型等)的执行对优选和/或所需的资源确定标准,则执行程序实例的适当计算节点的确定可至少部分地基于计算节点是否具有可用来满足那些资源标准的足够资源。与执行和配置程序以在程序执行服务上执行有关的另外细节包括在2006年3月31日提交的且标题为“Managing Execution of Programs by Multiple Computing Systems”的未决美国专利申请号11/395,463中,该申请特此通过引用被全部并入。
此外,如前所述,在至少一些实施方案中,使用自动终止的额外程序执行能力的程序的执行可在稍后的时间由PES自动重新发起。例如,在这样的情况中,PES可继续试图执行程序,直到所请求的执行完成(例如,直到被用户取消或以其它方式明确终止,直到一个或多个程序完成了一个或多个任务的指示被接收到,等等),直到特定时间的出现(例如,直到到期时间的出现,直到累积执行时间的出现,等等),直到特定数量的执行的出现,不确定地,等等。
在一些实施方案中,费用可与PES的使用相关,使得PES可代表用户执行程序以由换取该用户对一个或多个费用的支付。例如,在一些实施方案中,可以基于被分配来代表用户执行一个或多个程序的程序执行能力的数量和/或类型,例如基于为执行用户的程序而分配的很多处理单元中的一个或多个、记忆的量、存储的量、网络资源的数量等而向用户收取费用。在一些实施方案中,费用可基于其它因素,例如用于执行程序的计算资源的各种特征,例如基于CPU容量或性能(例如,32位、64位等)等。在一些实施方案中,可基于各种使用因素例如每次服务的使用的价格、计算服务被使用的每时间单位的价格、每个所使用的存储的价格、每传输进和/或出的数据的价格等来收取费用。在至少一些实施方案中,如在下面更详细地讨论的,费用可基于各种其它因素,例如与程序执行能力的可用性(例如,变化的可用性程度,例如被保证的可用性和/或可变的可用性)有关,和/或与执行程序有关的各种特性(例如,执行的连续性、容错等)。在至少一些实施方案中,PES的提供者可提供用于代表多个用户执行程序的服务或功能的各种层次、类型和/或等级的一个或多个,且在一些这样的实施方案中,各种费用可以与服务的各种层次、类型和/或等级相关。例如,在一些实施方案中,可向用户收取与由PES提供的专用程序执行能力功能的使用相关的一种或多种费用,例如分别比与PES的立即响应可变程序执行能力服务的可比较的使用相关的费用低的费用。较低的费用可反映例如在规定的使用时间段(例如,很多星期、月、年等)内进入长期协定的用户,例如以在协议期限(预先和/或周期性的)内例如支付一种或多种特定的费率。此外,例如层次可用于由PES提供的特定类型的功能,例如以在第一层次对第一量的专用程序执行能力功能收费(例如,一直到正被使用的计算节点的规定的第一阈值),以在第二层次(例如较低价格层次)对第二量的专用程序执行能力功能收费(例如,高于规定的第一阈值并一直到正被使用的计算节点的规定的第二阈值),等等。层次可进一步基于各种因素,而不是在至少一些实施方案中使用的功能的量,不管是替代地还是除了基于所使用的功能的量以外。与相关于程序执行服务的各种费用有关的额外细节包括在2007年12月21日提交的且标题为“Providing Configurable Pricing for Execution of Software Images”的未决每个专利申请号11/963,331中,该申请特此通告引用被全部并入。
对专用计算能力的时期的使用时间段可在各种实施方案中以各种方式指定,例如以指示用户访问专用程序执行能力的规定时间段(例如,很多天、星期、月、年等)、可以为用户连续执行一个或多个程序的持续时间(例如,一个或多个程序可在任何给定的时期内执行的多个小时,例如一天一小时、一星期一小时等)、一个或多个程序可执行的时间窗(例如,在下午1:00和下午3:00之间,每隔一天等)。如前所述,在一些实施方案中,可为PES的用户提供电子市场,使得专用程序执行能力用户可提供向一个或多个其它用户提供对专用程序执行能力的其规定的使用时间段的一些或全部,以交换来自那些一个或多个其它用户的支付,使得一个或多个其他用户可使用专用程序执行能力的所提供的部分来代表一个或多个其他用户执行程序,且专用程序执行能力用户可接收对这样的使用的支付。在其它实施方案中,专用程序执行能力用户可临时提供其专用程序执行能力的某个部分的使用,用于由一个或多个用户部分地基于具有例如由一个或多个用户对专用程序执行能力(例如,比由专用程序执行能力用户支付的费率大的费率)的使用支付额外费用的意愿指示的程序执行能力的紧急需要的一个或多个其它用户来使用,且在至少一些这样的实施方案中,从一个或多个用户收集的费用的一部分和/或全部可被提供给专用能力用户。
此外,在各种实施方案中,各种其它类型的功能可被提供并由PES使用,如在其它地方更详细地讨论的。
图3是示出适合于执行由多个用户管理计算节点的使用的系统的示例性实施方案的方框图。特别是,图3示出适合于执行程序执行服务系统管理器模块以及各种用户计算系统350、计算节点360和其它计算系统380的实施方案的服务器计算系统300。在所示实施方案中,服务器计算系统300具有包括CPU 305、各种I/O部件310、存储器320和内存330的部件。所示I/O部件包括显示器311、网络连接312、计算机可读介质驱动器313和其它I/O设备315(例如,键盘、鼠标、扬声器等)。此外,所示用户计算系统350具有与服务器计算系统300的部件类似的部件,包括CPU351、I/O部件352、存储器354和内存357,虽然为了简洁起见一些细节没有在本实例中示出。其它计算系统380和技术节点360也可每个包括与关于服务器计算系统300示出的一些或全部部件类似的部件,但为了简洁起见这样的部件没有在本实例中示出。
程序执行服务系统管理器模块340的实施方案在内存330中被执行,且它通过网络390(例如,经由互联网和/或万维网、经由私用蜂窝网络等)与计算系统350和380以及计算节点360交互作用。在这个示例性实施方案中,PESSM 340可例如包括软件指令,其在被执行时是一个或多个处理器(例如,CPU 305)执行所述技术的一些或全部的程序,包括与由与用户计算系统350交互作用的各种用户(未示出)管理多个计算节点360的使用有关的功能,例如结合由PESSM 340管理的程序执行服务。其它计算系统350和380以及计算节点360可以执行各种软件作为与PESSM的交互作用的部分。例如,用户计算系统350可以执行内存357中的软件以与PESSM 340交互作用(例如,作为Web浏览器或专业化客户端侧应用程序的部分),例如以代表这些系统的用户以各种方式在一个或多个计算节点360上配置和/或请求程序的执行,例如与可变执行能力使用、专用执行能力使用和/或额外执行能力使用有关。此外,用户计算系统350的一个或多个用户可与PESSM 340交互作用以执行各种其它类型的行动,如在其它地方更详细地讨论的。与PESSM模块340的功能有关的各种信息324可存储在存储器320中,例如与私用额外能力工具有关的信息(例如,跟踪的当前可用性、与配置和/或其它配置信息有关的用户指令等)和其它信息322(例如,与用于代表多个用户执行程序的配置、执行和/或注册有关的信息)。
在本实例中,PESSM系统340包括三个组成模块,包括专用能力使用管理器模块342、额外能力使用管理器模块344和立即响应可变能力使用管理器模块346。专用能力使用管理器模块342通过用户管理专用计算能力的使用,图6示出在一个示例性实施方案中相应于模块342的操作的例程。额外能力使用管理器模块344通过用户管理通用和私用额外计算能力工具的使用,图5A和5B示出在一个示例性实施方案中相应于模块344的操作的例程。立即响应可变能力使用管理器模块346通过用户管理立即响应可变计算能力的使用,图7示出在一个示例性实施方案中相应于模块346的操作的例程。在其它实施方案中,由PESSM模块340提供的功能可用其它方式构造,包括任选地不包括组成模块342-346中的一个或多个(例如,对于不提供立即响应可变能力使用的实施方案不包括立即响应可变能力使用管理器模块346)。
在PESSM模块340接收到在一个或多个计算节点360上执行一个或多个程序的请求(或其它指示)之后,PESSM模块340确定相应于要使用的程序执行能力的所指示的类型的组成模块342-346,并将该请求转发到所确定的组成模块。所确定的组成模块和PESSM模块340接着执行各种操作以对请求作出响应,例如选择将执行一个或多个程序的一个或多个计算节点,并在那些计算节点上发起那些程序的执行。此外,PESSM模块340(包括组成模块342-346)可进一步执行操作来与计算节点360交互作用以在计算节点上终止所发起的程序的执行,以将程序中的一个或多个迁移到一个或多个其它计算节点360或计算系统380,以监控一个或多个计算节点360或以其它方式与一个或多个计算节点360交互作用以跟踪那些计算节点的使用,等等。计算节点360在各种实施方案中可具有各种形式,例如以包括多个物理计算系统和/或在一个或多个物理计算系统上执行的多个虚拟机。在一些实施方案中,服务器计算系统300和计算节点360可以是数据中心的部分或其它组的协同定位的计算系统,或可以在其它情况下是私用网络的计算节点。此外,在一些实施方案中,PESSM模块340可与一个或多个其它计算系统380交互作用以发起或终止在那些计算系统上一个或多个程序的执行,例如如果计算系统380由一个或多个第三方参与者提供,第三方参与者提供额外程序执行能力以由其他用户使用。在一些实施方案中,PESSM模块340可进一步或替代地管理对一种或多种类型的计算相关的资源或服务而不是程序执行服务(例如,永久或临时数据存储服务、消息发送服务、数据库服务等)的访问。
将认识到,计算系统300、350和380以及计算节点360仅仅是例证性的,且不是用来限制本发明的范围。计算系统和/或节点可以替代地每个包括多个交互的计算系统或服务,且计算系统和/或节点可连接到未示出的其它设备,包括通过一个或多个网络例如互联网,经由Web,或经由私用网络(例如,移动通信网络等)。更一般地,计算节点或其他计算系统可包括可与所述类型的功能交互作用并执行这些功能的硬件或软件的任何组合,没有限制地包括桌上型或其它计算机、数据库服务器、网络存储设备和其它网络设备、PDA、蜂窝电话、无线电话、寻呼机、电子组织器、互联网器具、基于电视的系统(例如,使用机顶盒和/或个人/数字视频记录器)、以及包括适当的通信能力的各种其它消费者产品。此外,由所示PESSM模块340提供的功能及其组成模块在一些实施方案中可分布在额外的模块中或在较少的模块中组合。类似地,在一些实施方案中,PESSM模块340的一些功能可以不被提供和/或其它额外的功能可能是可用的。
还将认识到,虽然各种项目在被使用时被示为存储在内存中或存储器上,但这些项目或其部分可以为了存储管理和数据整体性的目的而在存储器和其它存储设备中传输。可选地,在其它实施方案中,软件PESSM模块340和/或组成模块的一些或全部可在另一设备上的存储器中执行,并经由计算机间通信与所示计算系统通信。此外,在一些实施方案中,PESSM模块340和/或组成模块的一些或全部可以用其它方式例如至少部分地在固件和/或硬件(包括但不限于一个或多个专用集成电路(ASIC)、标准集成电路、控制器(例如,通过执行适当的指令,并包括微控制器和/或嵌入式控制器)、现场可编程门阵列(FPGA)、复杂可编程逻辑设备(CPLD))中实现或提供。模块和数据结构中的一些或全部也可存储(例如,作为软件指令或结构数据)在计算机可读介质如硬盘驱动器、内存、网络或由适当的驱动器或经由适当的连接读取的便携式介质物品上。模块和数据结构也可作为所产生的数据信号在各种计算机可读传输介质(包括基于无线的和有线的/基于电缆的介质)上被传输(例如,作为载波或其它模拟或数字传播的信号的部分),或可采取各种形式(例如,作为单个或复用的模拟信号的部分,或作为多个分立的数字分组或帧)。这样的计算机程序产品在其它实施方案中也可采取其它形式。因此,可以使用其它计算机系统配置来实践本发明。
图4是程序执行服务系统管理器例程400的示例性实施方案的流程图。例程可以通过例如分别图1A和1B的PESSM模块110和180、执行相应于图2A和2B的操作的PESSM模块(未示出)和/或图3的PESSM模块340的执行来提供,例如以帮助管理多个计算节点和/或其它类型的程序执行能力的使用,以及在一些情况下执行其它类型的管理操作。在这个所示实施方案中,例程400管理程序执行服务的使用的各种方面,程序执行服务提供程序执行能力用于代表多个用户执行程序。
在所示实施方案中,例程在块405开始,在块405中,信息或请求被接收到。例程继续到块410以确定所接收的请求或信息是否与专用能力使用有关。如果是这样,例程继续到块415以执行与管理专用计算能力使用有关的例程,这样的例程的一个示例性实施方案关于图6被更详细地讨论。如果替代地在块410确定块405的信息或请求与专用能力使用无关,则例程继续到块430以确定信息或请求是否与额外计算能力使用有关。如果是这样,例程继续到块435以执行与管理额外计算能力使用有关的例程,这样的例程的一个示例性实施方案关于图5A-5B被更详细地讨论。如果替代地在块430确定块405的信息或请求与额外能力使用无关,则例程继续到块440以确定信息或请求是否与立即响应可变计算能力使用有关。如果是这样,例程继续到块445以执行与管理额外计算能力使用有关的例程,这样的例程的一个示例性实施方案关于图7被更详细地讨论。
如果替代地在块440确定与可变能力使用有关的信息或请求没有被接收到,则例程继续到块460以确定信息或请求是否与次级专用能力市场有关,且如果是这样,例程继续到块462以在适当时执行与次级专用能力市场有关的一个或多个所指示的操作。例如,在各种实施方案中,这样的操作可包括来自专用能力用户的出售和/或租借不同量的用户专用程序执行能力的一个或多个指示、来自一个或多个其他用户的购买和/或租借来自专用能力用户的程序执行能力的指示、来自可能愿意为不同量的程序执行能力支付额外的费用的一个或多个紧急用户的指示,等等。
在块415、435、445和462之后,或如果替代地在块460确定与次级专用能力市场有关的信息或请求没有被接收到,则例程继续到块470以任选地基于在块405中接收的信息或请求执行任何用户记账或退款活动,或如以其它方式发起的(例如,周期性地),例如以基于提供给用户的程序执行功能来支付和/或收集来自一个或多个用户(例如,专用能力用户、可变能力用户、额外能力用户和/或其他用户)的费用,和/或为了由用户提供或启用的功能而支付和/或偿还一个或多个用户(例如,专用能力用户和/或提供计算资源以由额外能力用户使用的其它用户,等等)。
在块470之后,例程继续到块475以任选地监控在使用中的任何通用额外计算能力池和私用额外计算能力池的额外程序执行能力,使得程序执行能力可从可供一个或多个额外能力用户使用的额外程序执行能力被添加和/或移除。在其它实施方案中,例程可接收程序执行能力的当前和/或预期使用的其它指示,例如来自程序执行服务的一个或多个计算资源(例如,具有可指示当前使用状态的常驻监控器的计算节点)、来自一个或多个用户的通知,和/或可以用其它方式确定计算节点何时被和/或可能被使用、未使用或未充分使用。
接着,例程继续到块495以任选地执行一个或多个其它所指示的操作。在一些实施方案中,这样的操作可包括配置用户的程序执行服务的各种资源和/或功能的使用、签约或注册操作、调度操作等。在块495之后,例程继续到块498以确定是否继续,例如直到明确的指示以终止例程的执行被接收到。如果是这样,例程返回到块405,而如果不,例程继续到块499并结束。
图6是专用能力使用管理器例程600的示例性实施方案的流程图。例程可通过例如图3的PESSM模块340的专用能力使用管理器模块342的执行或作为分别图1A和1B的PESSM模块110和180和/或执行相应于图2A和2B的操作的PESSM模块(未示出)的部分来提供,并可从图4中的例程400的块415发起,或以其它方式调用。
在所示实施方案中,例程600在块605开始,在块605,与专用能力使用有关的请求、信息和/或其它指示被接收到。在块612,例程接着确定请求是否从用户接收到以对专用程序执行能力的使用签约。如果是这样,例程继续到块614,在块614中,相应的信息从签约用户得到,且与对专用程序执行能力的使用的签约有关的各种操作被执行。例如,在一些实施方案中,用户可选择和/或指示用户将愿意专门访问的一个或多个计算节点。如在其它地方讨论的,在一些实施方案中,用户可从各种类型的计算节点的一个或多个选择,和/或可用其它方式指定不同数量和/或类型的期望的计算资源(例如,处理单元类型/数量、记忆量、平台规范等)。此外,签约用户也可指示期望的使用时间段,在该时间段用户将愿意专门访问(例如,小时、星期、年等的数量),和/或可提供其它信息(例如,记账信息、代表用户执行的程序的指示、用于在一个或多个未来的时间执行一个或多个程序的调度信息,等等)。在签约者提供与期望的专用程序执行能力的类型和/或数量有关的信息之后,例程继续到块616,在块616,适当数量的所请求的程序执行能力被分配以由签约用户专门使用,如果可能。如在其它地方讨论的,程序执行能力(例如,一个或多个计算节点)可被分配和/或指定来在各种实施方案中由特定的签约专用能力用户以各种方式使用。
在块616之后,例程继续到块618以任选地确定是否使用为了专用使用分配给用户的至少一些计算能力,作为由用户(和/或由其它指定的用户)使用的私用额外计算能力池的部分,且如果是这样,存储相应的信息以启用私用额外计算能力池的使用。例如,在一些实施方案中,可对所决定的能力签约用户启用并使用私用额外计算能力池,使得被分配给这样的用户的所有专用计算能力可变得以后可用在该用户的私用额外计算能力池中,而专用计算能力否则不被用户使用。可选地,PESSM模块在一些实施方案中可默认地为所有专用能力用户产生这样的私用额外计算能力池,除非另外指示。在其它实施方案中,专用能力用户的这样的私用额外计算能力池可以不在块618中产生,除非用户提供明确的指示来这么做,和/或其它预先确定的标准被满足。在又一些其它实施方案中,是否为用户产生这样的私用额外能力池的确定可替代地在其它时间执行,例如当从这样的专用能力用户接收到使用额外计算能力资源的请求时。此外,在至少一些实施方案中,签约用户可为用户配置这样的私用额外计算能力池的其它方面,例如专用能力使用的多少可用作私用额外能力池的部分(例如,全部、特定的百分比或特定数量的计算节点等),对什么用户私用额外能力池是可用的、私用额外能力池是可用的或不可用的某些时间段和/或其它标准,等等。
如果替代地在块612确定对签约专用程序执行能力的使用的请求未接收到,则例程替代地继续到块630,在块630,例程确定请求是否被接收到以代表签约用户对所分配的专用程序执行能力执行一个或多个程序(例如,对立即执行的当前请求,对执行的以前安排的请求,等等),以及相应的专用程序执行能力没有已经在使用中或被安排用于其它专用程序执行。如果足够的专用程序执行能力不是可用的,则错误消息或其它类似的响应例如关于块635被提供。在一些实施方案中,例程也可确保执行请求在适当的使用期内被接收到和/或可用其它方式授权该请求(例如,认证该请求,授权签约用户,等等)。如果为了专用能力的使用而接收适当的请求,例程继续到块640以确定对该请求使用的所分配的专用程序执行能力是否目前在使用中,作为实现来自请求者的以前请求的部分,作为该请求者的私用额外计算能力池的部分。如果这样的当前私用额外计算能力池使用在块645中被识别,例程继续到块650,且否则例程继续到块660以例如通过发起在所分配的程序执行能力上的一个或多个程序的执行来执行所请求的执行。如果例程在块660之前首先继续进行到块650,则块650中的例程发起以前的请求从私用额外计算能力池到通用额外计算能力池的传输,因为私用额外计算能力池不再具有当前的可用性以实现以前的请求,虽然在其它实施方案和情况(例如,基于对以前的请求规定的指令)中,但例程可替代地为私用额外计算能力池在队列中留下以前的请求,使得它被推迟,直到足够的能力在私用额外计算能力池中变得可用为止。在一些实施方案中,作为块660的部分,例程可选择计算资源和/或计算节点,在其上以各种方式执行程序,且在一些情况下例程可终止其它用户(例如,通用额外能力池用户)的一个或多个程序和/或否则释放计算资源以执行所请求的执行。在一些实施方案中,如果专用能力用户以前提供某个量的其所分配的专用程序执行能力以由一个或多个其它用户使用,例如以向另一用户出售或租借该能力,则实现所接收的请求的专用能力可能不可供专用用户在请求的时间使用,除非用户能够收回对请求的能力。此外,在一些实施方案中,来自签约用户的对专用能力的使用的当前请求可以被暂时延迟,例如以允许作为签约用户的私用额外能力池的部分来执行的来自签约用户的以前请求完成或以其它方式执行一个或多个确定的行动。
如果在块630替代地确定代表签约用户对所分配的程序执行能力执行一个或多个程序的请求没有被接收到,则例程继续到块635以在适当时任选地执行与专用能力使用有关的一个或多个其它指示的操作。例如,在一些实施方案中,这样的操作可包括指示某个量的专用程序能力以作为额外程序执行能力变得可用,不管是对私用额外能力池和/或通用额外能力池,和/或指示某个量的以前规定的程序执行能力将被收回以由专用能力用户使用。此外,如前所述,在块635中的例程可提供错误消息或其它有关的信息,如果在块605中接收的请求未被实现。此外,在一些实施方案中,请求或指令可以在块605中被接收到以终止以前指示的专用能力使用,且如果是这样,在块635中的例程可执行这样的程序终止并且也更新因而产生的可用额外能力的相应的私用额外计算能力池(如果有的话)或通用额外计算能力池—在其它实施方案中,用户可替代地终止在计算节点上的程序的执行,而不通知例程600,且PESSM模块可稍后自动识别因而产生的额外计算能力(例如,关于图4的块475)。
在块618、635或660之后,例程继续到块699并返回。
图5A-5B是额外能力使用管理器例程500的示例性实施方案的流程图。例程可为了图3的PESSM模块340的额外能力使用管理器模块344的执行或作为分别图1A和1B的PESSM模块110和180和/或执行相应于图2A和2B的操作的PESSM模块(未示出)的部分来被提供,并可从图4中的例程400的块435发起或以其它方式被调用。
在所示实施方案中,当调用例程500时,与额外能力使用有关的请求、信息和/或其它指示在块502被提供到例程502。在块505,例程接着确定指示是否被接收到以将程序执行能力添加到可用额外程序执行能力,例如基于关于图4的块475获得的信息,或如通过关于图6的块635的专用计算能力的使用的终止触发的。如果是这样,例程继续到块510以将所指示的程序执行能力添加到可用程序执行能力。特别是,如果额外程序执行能力相应于私用额外计算能力池,则该私用池被选择来接收所指示的额外能力,且否则通用额外计算能力池被选择。此外,在一些实施方案中,对创建新的私用额外能力池的请求可以被接收到并关于块510或替代地关于块595被处理,如下所述。例如,在一些实施方案中,例程可将这样指示的程序执行能力的一个或多个指示(例如,一个或多个特定的计算节点等)添加到选定的可用程序执行能力池。在一些实施方案中,多个池可以被提供,如前面关于私用和通用额外能力池和/或以其它方式讨论的(例如,各种不同类型的程序执行能力可以是可用的,并被分组成与程序执行能力的类型相关的相应的私用和/或通用池)。
如果替代地在块505确定添加额外程序执行能力的指示未接收到,则例程继续到块515以确定指示是否被接收到以从可用额外程序执行能力移除程序执行能力。如果是这样,则例程继续到块520以选择相应的私用和/或通用额外能力池,额外能力从该能力池移除(例如,基于所指示的特定程序执行能力,例如对于目前使用额外能力执行的一个或多个程序)。例程接着从选定的能力池的可用额外程序执行能力移除所指示的程序执行能力,使得所指示的程序执行能力(或相等量的程序执行能力)作为额外程序执行能力不再是可用的,以代表选定的能力池的额外能力用户执行程序。
如果替代地在块515中确定从可用程序执行能力移除程序执行能力的指示未接收到,则例程替代地继续到块525以确定代表额外能力用户对某个量的可用额外程序执行能力执行一个或多个程序的请求是否被接收到(或对这样的执行的以前安排的请求被触发)。如果是这样,例程继续到块530以选择相应的私用和/或通用额外能力池,额外能力从该能力池获得以用于执行该请求的一个或多个程序(例如,基于额外能力用户或替代地基于要使用的特定程序执行的另一指示),并任选地从与所请求的执行有关的请求额外能力用户获得或接用于执行收额外的信息。在一些实施方案中,这样的额外信息可包括配置信息,例如所请求的程序执行能力的量和/或类型的指示(例如,包括最小和最大量)、出价金额(例如,包括最小和最大出价金额)、到期时间、要使用的特定额外能力池(例如,仅仅与用户相关的特定的私用额外能力池,或使用特定的私用额外能力池,如果是可用的,但否则使用通用额外能力池)等。在一些实施方案中,一些或所有这样的额外信息可替代地被包括,作为在块502中接收的请求的部分,或作为由额外能力用户执行的单独的配置和/或注册的部分。此外,在一些实施方案中,例程可提供对一种或多种类型的额外能力用户的反馈,例如指示所请求的执行的可能特征(例如,请求将被执行的可能时间、执行的可能持续时间、待使用的可能的额外能力池等)和/或任选的其它信息(例如,所建议的配置)。在块530之后,例程继续到块535以将请求添加到一组当前请求用于对待使用的选定额外能力池的额外程序执行能力执行。在其它实施方案中,不是将请求添加到一组其它请求,例程可替代地试图立即满足该请求,例如通过确定是否有可用额外程序执行能力来在该即刻时间执行请求(例如,在特定的私用额外能力池中),并如果是这样则发起程序的执行,或如果不是这样则采取其它行动(例如,将请求从不可用的私用额外能力池移动到通用额外能力池,失败等)。
如果在块525确定对可用额外程序执行能力执行程序的请求未被接收到,则例程继续到块540以确定移除所指示的以前的执行请求是否被接收到(例如,以前在块535被添加到一组请求的所指示的执行请求),例如来自额外能力用户的取消当前的执行请求的请求和/或该请求否则到期的所接收的指示,等等。如果是这样,例程继续到块545以终止与当前对某个量的额外程序执行能力执行的所指示的请求相关的任何程序,并接着继续到块550以从包括所指示的请求的一组或多组请求移除所指示的请求,使得所指示的请求将不随后被考虑来对额外程序执行能力执行。
在块510、520、535和550中,或如果替代地在块540确定移除所指示的执行请求的请求未接收到,则例程继续到块555以确定是否管理当前请求以对额外程序执行能力执行。例如,在一些实施方案中,在块502接收的指示可被传递到例程500以管理请求和/或可基于可用程序执行能力的变化(例如,通过分别在块510和520中添加到可用程序执行能力或从可用程序执行能力移除)和/或当前的执行请求的变化(例如,通过分别在块535和550中添加请求或移除请求)等。如果是这样,例程继续到块560以确定在使用中的一个或多个私用和/或通用额外计算能力池的当前可用额外程序执行能力的量,例如包括分别在块510和520添加到可用程序执行能力或从可用程序执行能力移除的程序执行能力的量。在块560之后,例程继续到块562以选择可使用任何可用私用额外计算能力池执行的未决请求(例如,在即将来临的时间间隔期期间立即执行或执行),例如已经使用私用额外能力池执行的请求、对私用额外能力池排队的请求、当前使用通用额外能力池执行但具有相应的私用额外能力池(如果它是可用的,则是优选的)的请求、当前对通用额外能力池排队但具有相应的私用额外能力池(如果它是可用的,则是优选的)的请求,等等。对于任何这样选择的请求,在块560中的例程接着分配来自相应的私用额外计算能力池的相应量的额外计算能力(或安排对即将来临的时间间隔期的这种分配)。例程接着继续到块565以关于未在块562中选择的任何其余的请求选择使用一个或多个通用额外计算能力池执行的其它请求(例如,在即将来临的时间间隔期期间立即执行或执行),并分配由那些选定的其它请求使用的来自相应的通用额外计算能力池的当前可用的程序执行能力。
如更详细地讨论的,在块562和565中的请求的选择可在各种实施方案中以各种方式被执行,包括至少部分地基于与请求及其用户相关的优先权。例如,在一些实施方案中,例程试图基于其请求将来自相应的额外计算能力池的一定量的额外程序执行能力分配给每个请求(例如,多个指定的计算节点等)。在一些这样的实施方案中,如果存在足够的当前可用的额外程序执行能力来满足对特定额外计算能力池的所有当前的请求执行,则每个请求将被分配所请求的量的该额外程序执行能力用于执行与请求相关的程序。在没有足够的当前可用的额外程序执行能力满足对特定额外计算能力池的所有当前请求的情况下,例程优先考虑请求并试图在较低优先权请求之前满足较高优先权请求。在各种实施方案中,优先权可基于与私用额外计算能力池、出价金额、请求被接收到的时间等相关的一个或多个特定的用户。在各种实施方案中,例程可确定分配哪个当前可用的额外程序执行能力以由请求以各种方式使用,例如在其它地方描述的。
在块565之后,例程继续到块570以终止与已经对额外程序执行能力执行但未在块562和565中对当前执行选择的请求相关的任何执行程序,例如以反映该请求已到期或不是足够高的优先权,以导致当前继续的满足。在块575中,例程接着执行与每个请求相关的一个或多个程序(和/或在对在块565中对在进行中的执行选择的额外程序执行能力上留下以前执行的程序)。在块575之后,例程继续到块580以任选地执行内务处理操作。例如,在一些实施方案中,例程可探测并指示在该组请求中是否有到期或以其它方式应被移除或在额外的计算能力池之间移动的任何执行请求。
如果替代地在块555确定不管理对额外程序执行能力的执行的当前请求,则例程继续到块595以任选地在适当时执行一个或多个其它所指示的操作。例如,在块502中接收的请求可以来自用户以例如以与关于图6的块618讨论的方式类似的方式为该用户创建新的私用额外能力池(例如,基于使用分配给用户的某种专用能力的一些或全部),或以修改现有的私用额外能力池的配置—如果是这样,则例程可在块595中执行相应的行动。在块580或595之后,例程继续到块599并返回。
图7是立即响应可变能力使用管理器例程700的示例性实施方案的流程图。例程可通过例如图3的PESSM模块340的立即响应可用能力使用管理器模块346的执行或作为分别图1A和1B的PESSM模块110和180和/或执行相应于图2A和2B的操作的PESSM模块(未示出)的部分来提供,并可从图4中的例程400的块455发起,或以其它方式调用。
在所示实施方案中,例程700在块705开始,在块705,与立即响应可用能力使用有关的请求、信息和/或其它指示被接收到。在块710,例程接着确定请求是否是对当前可用的立即响应可用计算能力执行一个或多个程序(例如,对立即执行的当前请求、以前安排的请求等)。如在其它地方讨论的,这样的请求可规定各种类型和/或量的程序执行能力,对该执行能力,代表可变的能力用户执行一个或多个程序。如果在块710确定执行一个或多个程序的请求被接收到,则例程继续到块744。在块744和746,例程接着确定所请求的程序执行能力是否当前是可用的。如果是这样,例程继续到块748以发起一个或多个所指示的程序对可用的可变程序执行能力的执行。如果不是,例程继续到块750,其中对可变程序执行能力的请求失败,例如通过不执行所请求的一个或多个程序。在其它实施方案中,在这样的情况下可任选地采取其它行动,例如以查询用户是否将请求移动到队列以与额外计算能力一起使用,或替代地在至少一些实施方案和情况下自动执行这样的移动。此外,在一些实施方案中,响应于对可变程序执行能力执行程序的请求,例程可自动终止额外能力用户的一个或多个程序以释放可变程序执行能力,例如通过将相应的请求发送到额外能力使用管理器模块。
如果替代地在块710中确定执行一个或多个程序的请求未接收到,则例程继续到块790以在适当时执行一个或多个其它操作。在块748、750或790之后,例程继续到块799并返回。
将认识到,在一些实施方案中,由上面讨论的例程提供的功能可用可选的方式被提供,例如在更多的例程当中分开或合并成较少的例程。类似地,在一些实施方案中,所示例程可提供比所描述的更多或更少的功能,例如当其它所示例程替代地分别缺少或包括这样的功能时,或当所提供的功能的数量改变时。此外,虽然各种操作可以被示为以特定的方式(例如,串行或并行地)和/或以特定的顺序被执行,但是本领域技术人员将认识到,在其它实施方案中,操作可按其它顺序和以其它方式被执行。本领域技术人员也将认识到,上面讨论的数据结构可以用不同的方式构造,例如通过具有分成多个数据结构的单个数据结构或通过使多个数据结构合并成单个数据结构。类似地,在一些实施方案中,所示数据结构可存储比所描述的更多或更少的信息,例如当其它所示数据结构替代地分别缺少或包括这样的信息时,或当所存储的信息的数量或类型改变时。
从前述内容中将认识到,虽然为了说明的目的在本文描述了特定的实施方案,但可进行各种修改而不偏离本发明的精神和范围。因此,除了被所附权利要求和其中所述的元件限制以外,本发明没有被限制。此外,虽然下面在某些权利要求形式中介绍了本发明的某些方面,但是发明人设想以任何可用权利要求形式的本发明的各种方面。例如,虽然本发明的仅仅一些方面可目前被描述为体现在计算机可读介质中,但其它方面可同样被如此体现。
Claims (26)
1.一种用于管理用户的程序的执行的计算机实现的方法,所述方法包括:
在规定的时间段期间为第一用户预留一个或多个计算节点的程序执行能力,以使第一用户能够接收专门访问以在所述规定的时间段期间使用所预留的程序执行能力执行程序,所述预留的程序执行能力是由代表程序执行服务的用户执行程序的所述程序执行服务的多个计算节点提供的可用程序执行能力的子集;
使用所述预留的程序执行能力在所述规定的时间段期间的第一时间段子集期间执行所述第一用户的一个或多个第一程序,所述一个或多个第一程序的执行响应于第一请求来对所述预留的程序执行能力使用所述第一用户的所述专门访问;
在不同于所述第一时间段子集的所述规定的时间段的第二时间段子集期间从所述第一用户接收第二请求以执行所述第一用户的一个或多个第二程序,所述第二请求使用所述第一用户没有专门访问的所述程序执行服务的所述可用程序执行能力的未使用的额外能力来执行所述一个或多个第二程序,所述程序执行服务的所述额外能力的使用具有由所述程序服务控制的第一程序执行特征,所述第一程序执行特征不同于由所述程序执行服务控制的从所述预留的程序执行能力的使用出现的第二程序执行特征;
自动确定使用所述第一用户的所述预留的程序执行能力来在所述第二时间段子集期间对第二请求执行所述一个或多个第二程序,自动确定使用所述预留的程序执行能力,其中,所述预留的程序执行能力由所述程序执行服务的一个或多个编程的计算系统执行并至少部分地基于所述第一用户,否则不在所述第二时间段子集期间使用对所述预留的程序执行能力的所述专门访问;以及
通过使用所述预留的程序执行能力在所述第二时间段子集期间发起所述第一用户的所述一个或多个第二程序的执行,所述一个或多个第二程序的执行具有基于所述预留的程序执行能力的使用的所述第二程序执行特征的至少一些。
2.如权利要求1所述的方法,还包括:
在所述规定的时间段的第三时间段子集期间从所述第一用户接收第三请求以执行所述第一用户的一个或多个第三程序,所述第三请求使用所述程序执行服务的未使用的程序执行能力来执行所述一个或多个第三程序,
自动确定不使用所述第一用户的所述预留的程序执行能力来在所述第三时间段子集期间对第三请求执行所述一个或多个第三程序,至少部分地基于所述预留的程序执行能力自动确定不使用所述预留的程序执行能力,否则在所述第三时间段子集期间由所述第一用户使用;以及
试图通过使用所述程序执行服务的所述未使用的额外能力在所述第三时间段子集期间发起所述第一用户的所述一个或多个第三程序的执行。
3.如权利要求2所述的方法,其中使用所述未使用的额外能力的所述一个或多个第三程序的执行具有所述第一程序执行特征,所述第一程序执行特征包括对第一规定量的程序执行能力向所述第一用户收取的第一费用,且其中所述方法还包括,在所述一个或多个第三程序的执行使用所述程序执行服务的所述未使用的额外能力被发起之后且在所述一个或多个第三程序的执行完成之前:
自动确定所述第一用户的所述预留的程序执行能力的至少一些变得可用;
自动确定修改所述一个或多个第三程序的连续执行来使用至少一些可用的预留程序执行能力;以及
使用所述至少一些可用的预留程序执行能力代替所述程序执行服务的所述额外能力来发起所述一个或多个第三程序的连续执行,所述一个或多个第三程序的连续执行具有至少一些第二程序执行特征,所述至少一些第二程序执行特征包括对第二规定量的程序执行能力向所述第一用户收取的第二费用,所述第二费用与所述第一费用不同。
4.如权利要求1所述的方法,还包括:
在所述规定的时间段的第三时间段子集期间从第二用户接收第三请求以执行所述第二用户的一个或多个第三程序,所述第三请求使用所述程序执行服务的未使用的程序执行能力来执行所述一个或多个第三程序,所述第二用户不同于所述第一用户;
自动确定不使用所述第一用户的所述预留的程序执行能力来在所述第三时间段子集期间对第三请求执行所述一个或多个第三程序,至少部分地基于不同于所述第一用户的所述第二用户且不考虑所述预留的程序执行能力,自动确定不使用所述预留的程序执行能力,否则所述预留的程序执行能力不在所述第三时间段子集期间由所述第二用户使用;以及
试图通过使用所述程序执行服务的所述未使用的额外能力在所述第三时间段子集期间发起所述第二用户的所述一个或多个第三程序的执行。
5.如权利要求1所述的方法,其中来自所述第一用户的执行所述第一用户的所述一个或多个第二程序的所述第二请求包括要使用的多个计算节点的数量的指示,其中不在所述第二时间段子集期间由所述第一用户使用的所述第一用户的所述预留的程序执行能力与小于所指示的数量的所述一个或多个计算节点的可用数量相对应,其中通过使用所述预留的程序执行能力发起所述第一用户的所述一个或多个第二程序的执行包括使用可用数量的所述一个或多个计算节点,以及其中所述方法还包括通过使用所述程序执行服务的未使用的额外能力在所述第二时间段子集期间发起所述第一用户的所述一个或多个第二程序的其它执行,所述执行的发起包括使用一定数量的一个或多个未使用的额外计算节点,所述数量是在所指示的数量和所述可用数量之间的数值差。
6.如权利要求1所述的方法,还包括自动确定在所述规定的时间段期间使用所述预留的程序执行能力作为所述第一用户的私用额外计算能力池的部分,同时所述预留的程序执行能力不在使用中,向所述第一用户提供专门访问,以及自动监控所述第一用户的所述预留的程序执行能力的使用以确定所述预留的程序执行能力对所述私用额外计算能力池的可用性。
7.如权利要求6所述的方法,其中所述自动确定使用所述预留的程序执行能力作为所述第一用户的所述私用额外计算能力池的部分在不告诉所述第一用户的情况下被执行。
8.如权利要求6所述的方法,其中所述自动确定使用所述第一用户的所述预留的程序执行能力来在所述第二时间段子集期间对所述第二请求执行所述一个或多个第二程序包括确定使用所述预留的程序执行能力代替所述程序执行服务的所述未使用的额外能力,所述自动确定使用所述第一用户的所述预留的程序执行能力作为所述第一用户的所述私用额外计算能力池的部分以对所述第二请求执行所述一个或多个第二程序在不告诉所述第一用户的情况下被执行。
9.如权利要求1所述的方法,其中来自所述预留的程序执行能力的使用的所述第二程序执行特征包括所述第一用户的所述预留的程序执行能力的被保证的可用性,且其中对所述程序执行服务的所述额外能力的使用的所述第一程序执行特征包括所述额外能力的连续可用性的保证的缺乏。
10.如权利要求1所述的方法,其中来自所述预留的程序执行能力的使用的所述第二程序执行特征包括对在规定的时间间隔内规定数量的所述预留的程序执行能力的使用向所述第一用户收取的第一进行的费用,其中对所述程序执行服务的所述额外能力的使用的所述第一程序执行特征包括对在规定的时间间隔内规定数量的额外能力的使用向所述第一用户收取的第二费用,所述第一进行的费用小于所述第二费用,其中所述自动确定使用所述第一用户的所述预留的程序执行能力以执行所述一个或多个第二程序至少部分地基于对使用所述预留的程序执行能力执行所述一个或多个第二程序而向所述第一用户收取所述第一进行的费用,且其中对所述一个或多个第二程序的执行的所述至少一些第二程序执行特征包括所述第一进行的费用的使用。
11.如权利要求1所述的方法,其中所述预留的程序执行能力基于对所述第一用户的多个预留的计算节点的使用,其中所述多个预留的计算节点的全部由所述第一用户指定以在所述规定的时间段的部分而不是所述第一时间段子集期间用于代替所述程序执行服务的所述未使用的额外能力,其中通过使用所述预留的程序执行能力发起所述第一用户的所述一个或多个第二程序的执行包括使用所述多个预留的计算节点的子集,且其中所述方法还包括通过使用所述多个预留的计算节点中的至少一些在所述规定的时间段的一个或多个部分期间代表所述第一用户发起一个或多个其它第三程序的执行。
12.如权利要求1所述的方法,还包括在所述一个或多个第二程序的执行期间使用所述预留的程序执行能力:
从所述第一用户接收第三请求以使用所述第一用户对所述预留的程序执行能力的专门访问来执行所述第一用户的一个或多个第三程序;
确定基于所接收的第三请求使用所述预留的程序执行能力终止所述一个或多个第二程序的执行;以及
通过使用所述预留的程序执行能力代替所述一个或多个第二程序的执行来发起所述第一用户的所述一个或多个第三程序的执行。
13.如权利要求1所述的方法,还包括在所述一个或多个第二程序的执行期间使用所述预留的程序执行能力:
从所述第一用户接收第三请求以使用所述第一用户对所述预留的程序执行能力的专门访问来执行所述第一用户的一个或多个第三程序;以及
响应于所接收的第三请求,自动确定修改所述一个或多个第二程序的连续执行以使用所述程序执行服务的所述额外能力,以及使用所述额外能力而不是所述预留的程序执行能力来发起所述一个或多个第二程序的所述连续执行,所述一个或多个第二程序的所述连续执行具有所述第一程序执行特征。
14.如权利要求13所述的方法,其中使用所述预留的程序执行能力执行所述一个或多个第二程序的至少一些第二程序执行特征包括对第一规定量的程序执行能力向所述第一用户收取的第一费用,且其中使用所述额外能力连续执行所述一个或多个第二程序的所述第一程序执行特征包括对第二规定量的程序执行能力向所述第一用户收取的第二费用,所述第二费用不同于所述第一费用。
15.如权利要求1所述的方法,其中所述多个计算节点对于多个物理计算系统的每个包括由所述物理计算系统托管的多个虚拟机,每个虚拟机配置成执行至少一个程序,且其中用于所述预留的程序执行能力的所述一个或多个计算节点每个是托管的虚拟机。
16.一种用于管理用户的程序的执行的系统,包括:
用于提供第一用户专门访问的、用于在规定的时间段内的程序执行期间使用的一个或多个预留的计算相关的资源的装置,所述预留的计算相关的资源由远离所述第一用户的网络可访问的服务管理且不用于在所述规定的时间段的所指示的部分期间由所述第一用户专门访问;
用于自动响应于来自所述第一用户的请求以在所指示的部分期间在所述第一用户的一个或多个第一程序的执行期间使用至少一个所指示的计算相关的资源的装置,所述至少一个计算相关的资源被指示为所述第一用户没有专门访问的远程服务的未使用的额外计算相关的资源,所述用于自动响应的装置包括:
用于确定所述第一用户的所述预留的计算相关的资源包括所述至少一个所指示的计算相关的资源的装置,以及用于确定在所指示的部分期间在所述第一用户的所述一个或多个第一程序的执行期间使用所述预留的计算相关的资源代替所述远程服务的所述未使用的额外计算相关的资源的装置;以及
用于在所指示的部分期间在所述第一用户的所述一个或多个第一程序的执行期间发起所述预留的计算相关的资源的使用的装置。
17.如权利要求16所述的系统,其中所述服务是程序执行服务,所述程序执行服务提供配置成执行所述程序执行服务的用户的程序的多个计算节点,其中所述一个或多个预留的计算相关的资源包括被分配来由所述第一用户在执行一个或多个程序时使用的所述多个计算节点中的一个或多个,其中所述至少一个所指示的计算相关的资源是所述多个计算节点中的规定数量的一个或多个,且其中在所述一个或多个第一程序的执行期间所述预留的计算相关的资源的使用的发起包括通过来自被分配来由所述第一用户使用的所述一个或多个计算节点的所述规定数量的计算节点来发起所述一个或多个第一程序的执行。
18.如权利要求17所述的系统,其中提供所述第一用户专门访问的所述一个或多个预留的计算相关的资源包括使用所述第一用户的专门访问在所述规定的时间段的第二部分期间执行所述第一用户的一个或多个第二程序,所述第二部分不同于所指示的部分,且其中通过所述至少规定数量的计算节点执行所述第一用户的所述一个或多个第一程序具有第一程序执行特征,所述第一程序特征不同于从所述远程服务的所述未使用的额外计算相关的资源的使用出现的第二程序执行特征。
19.如权利要求16所述的系统,其中来自所述第一用户的使用至少一个所指示的计算相关的资源的所述请求包括一种类型的计算相关的资源的指示,且其中所述至少一个所指示的计算相关的资源是确定数量的所指示的类型。
20.如权利要求16所述的系统,其中所述至少一个所指示的计算相关的资源是永久存储器、内存和处理器循环中的至少一个。
21.一种配置成管理用户的程序的执行的计算系统,包括:
用于提供所述用户专门访问的、用于执行程序的规定的第一量的预留的程序执行能力的装置,所述预留的程序执行能力是由所述程序执行服务提供的程序执行能力的子集;以及
在提供规定的第一量的预留的程序执行能力之后,用于自动响应于来自所述用户的请求以使用所述用户没有专门访问的所述程序执行服务的第二量的额外程序执行能力来执行所述用户的一个或多个第一程序的装置,所述用于自动响应的装置包括:
用于自动确定所述用户的所述预留的程序执行能力是否包括没有被所述用户使用的至少所述第二量的可用程序执行能力的装置;
如果所述用户的所述预留的程序执行能力被自动确定为包括至少所述第二量的所述可用程序执行能力,用于使用所述用户的所述预留的程序执行能力来发起所述用户的所述一个或多个第一程序的执行的装置;以及
如果所述用户的所述预留的程序执行能力被自动确定为不包括至少所述第二量的所述可用程序执行能力,用于试图通过获得当前未使用的所述程序执行服务的其它额外程序执行能力的使用来发起所述用户的所述一个或多个第一程序的执行的装置,所述程序执行服务的所述其它额外程序执行能力不同于所述用户的所述预留的程序执行能力。
22.如权利要求21所述的计算系统,其中所述程序执行服务使用多个计算节点来提供所述程序执行服务的所述程序执行能力,其中为所述多个用户提供所述规定的第一量的预留的程序执行能力包括分配所述多个计算节点中的一个或多个用于由一个用户在规定的时间段内专门使用,并包括使用所述一个用户对所分配的一个或多个计算节点的所述预留的程序执行能力的专门访问在所述规定的时间段的一部分内执行所述一个用户的一个或多个第二程序,且其中所述一个用户的所述预留的程序执行能力被自动确定为不包括至少所述第二量的所述可用程序执行能力,如果在所述一个用户对所分配的一个或多个计算节点的所述预留的程序执行能力的专门访问用于执行所述一个或多个第二程序时所述自动确定在所述规定的时间段的所述部分期间出现。
23.如权利要求22所述的计算系统,其中所述一个用户的所述预留的程序执行能力是否包括至少所述第二量的可用程序执行能力的所述自动确定包括确定所述一个用户的所述预留的程序执行能力不包括至少所述第二量的可用程序执行能力,且其中使用所述一个用户的所述预留的程序执行能力执行所述一个用户的所述一个或多个第一程序具有第一程序执行特征,所述第一程序特征不同于从所述程序执行服务的所述其它额外程序执行能力的使用出现的第二程序执行特征。
24.一种用于管理用户的程序的执行的计算机实现的方法,所述方法包括:
预留由第一用户使用的多个计算节点以使所述第一用户能够在规定的时间段期间接收对用于执行程序的所预留的计算节点的专门访问的被保证的可用性,所预留的计算节点是由程序执行服务提供的多个计算节点的子集,每个计算节点配置成执行所述程序执行服务的多个用户之一的一个或多个程序;
自动确定在所述规定的时间段期间使用所述预留的计算节点中的每个作为所述第一用户的私用额外计算能力池的部分,同时所述预留的计算节点不在使用中,向所述第一用户提供专门访问,所述自动确定被所述程序执行服务的一个或多个编程计算系统执行而不告诉所述第一用户;
使用所述预留的计算节点在所述规定的时间段的第一时间段子集期间执行所述第一用户的一个或多个第一程序,所述一个或多个第一程序的执行响应于第一请求以使用所述第一用户对所述预留的计算节点的专门访问;
在不同于所述第一时间段子集的所述规定的时间段的第二时间段子集期间从所述第一用户接收第二请求以为所述第一用户执行在所指示的数量的计算节点上的一个或多个第二程序的执行,所述第二请求是从所述程序执行服务的通用额外计算能力池获得所指示的数量的计算节点,所述程序执行服务基于所述第一用户没有专门访问的所述程序执行服务的未使用的额外计算节点,所述通用额外计算能力池的使用被提供而没有那些未使用的额外计算节点的连续使用的被保证的可用性;
自动确定使用所述第一用户的所述私用额外计算能力池用于在所述第二时间段子集期间对所述第二请求在所指示的数量的计算节点上的所述一个或多个第二程序的执行的至少一些,而不是使用所述通用额外计算能力池,自动确定使用所述私用额外计算能力池由所述程序执行服务的一个或多个编程的计算系统执行;以及
通过使用所述预留的计算节点中的一个或多个作为所述私用额外计算能力池的部分在所述第二时间段子集期间发起所述第一用户的所述一个或多个第二程序的执行。
25.如权利要求24所述的方法,其中所述程序执行服务是基于费用的服务,其中所述第一用户对在指定的时间间隔内使用所述预留的计算节点之一作为所述第一用户的专门访问的部分支付第一增加的费用,其中所述第一用户对在所述指定的时间间隔内使用所述通用额外计算能力池的所述未使用的额外计算节点之一支付第二费用,所述第一增加的费用低于所述第二费用,且其中所述自动确定使用所述第一用户的所述私用额外计算能力池用于所述一个或多个第二程序的至少一些执行至少部分地基于对使用所述预留的计算节点作为所述私用额外计算能力池的部分向所述第一用户收取所述第一增加的费用。
26.如权利要求25所述的方法,其中所述私用额外计算能力池在自动确定使用所述私用额外计算能力池时包括少于所指示的数量的计算节点的一定数量的预留的计算节点,其中通过使用所述一个或多个预留的计算节点作为所述私用额外计算能力池的部分来发起所述一个或多个第二程序的所述至少一些执行包括使用所包括的数量的预留的计算节点,且其中所述方法还包括通过使用未使用的额外计算节点中的一个或多个作为所述通用额外计算能力池的部分来在所述第二时间段子集期间发起所述第一用户的所述一个或多个第二程序的其它执行,所述一个或多个未使用的额外计算节点的数量是所指示的数量的计算节点与所包括的数量的预留的计算节点之间的数值差。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510512080.3A CN105204924B (zh) | 2010-01-12 | 2011-01-10 | 管理程序执行能力的私有使用 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/686,273 | 2010-01-12 | ||
US12/686,273 US8924982B2 (en) | 2010-01-12 | 2010-01-12 | Managing private use of program execution capacity |
PCT/US2011/020665 WO2011087982A1 (en) | 2010-01-12 | 2011-01-10 | Managing private use of program execution capacity |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510512080.3A Division CN105204924B (zh) | 2010-01-12 | 2011-01-10 | 管理程序执行能力的私有使用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102934083A CN102934083A (zh) | 2013-02-13 |
CN102934083B true CN102934083B (zh) | 2016-11-30 |
Family
ID=
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604039A (zh) * | 2003-09-17 | 2005-04-06 | 国际商业机器公司 | 用于管理计算环境中的请求的执行的方法和系统 |
US6993764B2 (en) * | 2000-06-30 | 2006-01-31 | The Regents Of The University Of California | Buffered coscheduling for parallel programming and enhanced fault tolerance |
US7139821B1 (en) * | 2000-10-20 | 2006-11-21 | Sun Microsystems, Inc. | Method and apparatus for creating and deploying applications from a server application |
US20090049443A1 (en) * | 2004-10-06 | 2009-02-19 | Digipede Technologies, Llc | Multicore Distributed Processing System |
CN101375250A (zh) * | 2006-02-03 | 2009-02-25 | 甲骨文国际公司 | 自适应区域锁定 |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6993764B2 (en) * | 2000-06-30 | 2006-01-31 | The Regents Of The University Of California | Buffered coscheduling for parallel programming and enhanced fault tolerance |
US7139821B1 (en) * | 2000-10-20 | 2006-11-21 | Sun Microsystems, Inc. | Method and apparatus for creating and deploying applications from a server application |
CN1604039A (zh) * | 2003-09-17 | 2005-04-06 | 国际商业机器公司 | 用于管理计算环境中的请求的执行的方法和系统 |
US20090049443A1 (en) * | 2004-10-06 | 2009-02-19 | Digipede Technologies, Llc | Multicore Distributed Processing System |
CN101375250A (zh) * | 2006-02-03 | 2009-02-25 | 甲骨文国际公司 | 自适应区域锁定 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105204924B (zh) | 管理程序执行能力的私有使用 | |
US10915491B2 (en) | Managing use of program execution capacity | |
Madni et al. | Recent advancements in resource allocation techniques for cloud computing environment: a systematic review | |
JP5944021B2 (ja) | コンピューティング能力に対する要求を動的に管理するための方法およびシステム | |
US11656895B1 (en) | Computing resource provisioning | |
JP6254949B2 (ja) | 仮想マシンプールにおけるリソースの価格設定 | |
US8495648B1 (en) | Managing allocation of computing capacity | |
CN104040526B (zh) | 对虚拟机池中的资源的分派 | |
JP6530471B2 (ja) | バーストモード制御 | |
CN104040486A (zh) | 解耦paas资源、作业和调度 | |
CN104040485A (zh) | Paas分层调度和自动缩放 | |
US20170178041A1 (en) | Completion contracts | |
CN104301257B (zh) | 一种资源分配方法、装置及设备 | |
Niu et al. | Building semi-elastic virtual clusters for cost-effective HPC cloud resource provisioning | |
WO2016195716A1 (en) | Price, completion time, and resource allocation determination for cloud services | |
CN102934083B (zh) | 管理程序执行能力的私有使用 | |
Sampaio et al. | Enhancing reliability of compute environments on amazon EC2 spot instances | |
Bredin et al. | A market-based model for resource allocation in agent systems | |
Dib et al. | SLA‐based PaaS profit optimization | |
Zhaoyan et al. | Emergency demand response in edge computing | |
Kavanagh et al. | An economic market for the brokering of time and budget guarantees | |
Chi | A cloud eco-system: reactive demand control and dynamic pricing methodology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |