Patent ID: 7792944
Filing Date: 2010-09-07
Classification: G06F

Abstract:
1. A method for a computing system of a program execution service to execute programs in locations selected in accordance with user-specified constraints, the program execution service using a plurality of host computing systems in multiple geographic areas to execute programs, the plurality of host computing systems being connected at multiple hierarchical levels that are each associated with a distinct degree of proximity, the multiple hierarchical levels include a succession beginning at a lowest hierarchical level whose associated degree of proximity corresponds to multiple programs executing on a single computing system and ending at a highest hierarchical level whose associated degree of proximity corresponds to multiple geographically distributed rings of computing data centers connected by the Internet, the succession including multiple intermediate hierarchical levels that include a first switch-based hierarchical level whose associated degree of proximity corresponds to a group of multiple computing systems connected by a switch-based common group data exchange medium that is specific to that group, a router-based hierarchical level whose associated degree of proximity corresponds to a group of multiple switch-based computing system groups connected by a router-based data exchange medium, a data center-based hierarchical level whose associated degree of proximity corresponds to a group of multiple router-based computing system groups connected by a local area network of a data center, and a ring hierarchical level whose associated degree of proximity corresponds to multiple geographically proximate data centers connected by one or more dedicated high-speed data connections, the method comprising: receiving an indication from a user of the program execution service to execute an indicated quantity of copies of an indicated program in such a manner as to satisfy one or more indicated execution constraints, the indicated quantity of program copies including multiple copies, the one or more execution constraints for use by the program execution service in selecting one or more of the plurality of host computing systems to execute the indicated quantity of indicated program copies, the one or more execution constraints specifying one or more degrees of proximity of the selected one or more host computing systems to one or more indicated other target computing systems, the one or more execution constraints further specifying at least one of a minimum and a maximum degree of proximity between at least some of the computing systems executing the multiple indicated program copies with the minimum proximity degree if specified being for use in providing a minimum degree of reliability in case of a failure that affects one or more of the executing multiple indicated program copies and with the maximum proximity degree if specified being for use in providing a minimum degree of network connectivity performance between the executing indicated program copies of the at least some computing systems, the indicated target computing systems being computing systems executing other copies of the indicated program; automatically determining one or more of the hierarchical levels whose associated degrees of proximity correspond to the one or more degrees of proximity specified by the one or more execution constraints, the automatic determining of the one or more hierarchical levels being performed by a configured computing system of the program execution service; automatically determining one or more candidate host computing systems that are available to execute the indicated quantity of indicated program copies in accordance with the one or more execution constraints, the candidate host computing systems being connected to the indicated target computing systems at one or more of the determined hierarchical levels, the automatic determining of the one or more candidate host computing systems being performed by the configured computing system; automatically selecting from the candidate host computing systems the one or more host computing systems to execute the indicated quantity of indicated program copies, such that each of the selected one or more host computing systems is to execute at least one of the indicated program copies, the automatic selecting being performed by the configured computing system; and initiating executing of the indicated quantity of indicated program copies on the selected one or more host computing systems.