Managing execution of programs by multiple computing systems
First Claim
1. A computer-implemented method for managing execution of programs by a program execution service, the program execution service using a plurality of computing systems to execute programs, the plurality of computing systems including multiple groups of computing systems such that the computing systems of each group are physically proximate and share a common group data exchange medium that is specific to that group and such that the multiple groups of computing systems are connected via one or more other data exchange mediums distinct from the group data exchange mediums, the method comprising:
- receiving multiple requests that are each to execute an indicated one of multiple programs previously supplied to the program execution service, at least some of the multiple programs each having one or more copies stored locally on one or more of the plurality of computing systems; and
for each received request to execute an indicated program, automatically satisfying the request by,automatically selecting at least one of the plurality of computing systems to use in executing an instance of the indicated program, the selecting of the at least one computing systems being based at least in part on whether the selected computing systems are in groups with one or more other systems that store local copies of the indicated program; and
for each of the selected computing systems,if the selected computing system is in a group with one or more other systems that store a local copy of the indicated program, instructing the selected computing system to obtain a copy of the indicated program from at least one of the one or more other systems via the shared common group data exchange medium for the group and to initiate execution of the obtained program copy; and
if the selected computing system is not in a group with another system that stores a local copy of the one program, instructing the selected computing system to obtain a copy of the indicated program from one or more remote systems via at least one of the one or more distinct data exchange mediums and to initiate execution of the obtained program copy, the automatic selecting and instructing being performed by one or more programmed computing systems.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are described for managing the execution of programs on multiple computing systems, such as computing systems organized into multiple groups. A program execution service manages the program execution on behalf of multiple customers or other users, and selects appropriate computing systems to execute one or more instances of program, such as based in part on locations of one or more previously stored copies of the program from which copies of the program to execute may be acquired. For example, in some situations the selection of an appropriate computing system to execute an instance of a program is based in part on physical or logical proximity to other resources, such as stored copies of the program, executing copies of the program, and/or available computing systems.
-
Citations
81 Claims
-
1. A computer-implemented method for managing execution of programs by a program execution service, the program execution service using a plurality of computing systems to execute programs, the plurality of computing systems including multiple groups of computing systems such that the computing systems of each group are physically proximate and share a common group data exchange medium that is specific to that group and such that the multiple groups of computing systems are connected via one or more other data exchange mediums distinct from the group data exchange mediums, the method comprising:
-
receiving multiple requests that are each to execute an indicated one of multiple programs previously supplied to the program execution service, at least some of the multiple programs each having one or more copies stored locally on one or more of the plurality of computing systems; and for each received request to execute an indicated program, automatically satisfying the request by, automatically selecting at least one of the plurality of computing systems to use in executing an instance of the indicated program, the selecting of the at least one computing systems being based at least in part on whether the selected computing systems are in groups with one or more other systems that store local copies of the indicated program; and for each of the selected computing systems, if the selected computing system is in a group with one or more other systems that store a local copy of the indicated program, instructing the selected computing system to obtain a copy of the indicated program from at least one of the one or more other systems via the shared common group data exchange medium for the group and to initiate execution of the obtained program copy; and if the selected computing system is not in a group with another system that stores a local copy of the one program, instructing the selected computing system to obtain a copy of the indicated program from one or more remote systems via at least one of the one or more distinct data exchange mediums and to initiate execution of the obtained program copy, the automatic selecting and instructing being performed by one or more programmed computing systems. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer-implemented method for managing execution of programs by a program execution service, the method comprising:
-
receiving an indication of a program to be executed on at least one of multiple computing systems of a predefined group, the multiple computing systems being provided for execution of programs for a program execution service and sharing a common data exchange medium; determining whether one or more of the computing systems of the predefined group stores a copy of the indicated program; and automatically obtaining a local copy of the indicated program for execution by, if it is determined that one or more of the computing systems of the predefined group store a copy of the indicated program, obtaining the local copy from at least one of the one or more computing systems via the common data exchange medium; and if it is not determined that one or more of the computing systems of the predefined group store a copy of the indicated program, obtaining the local copy from one or more computing systems external to the predefined group via one or more data exchange mediums distinct from the common data exchange medium, the automatic obtaining being performed by one or more programmed computing systems. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
-
-
40. A non-transitory computer-readable storage medium whose contents include instructions that when executed configure a computing system to manage execution of programs, by performing a method comprising:
-
determining to execute at least one instance of an indicated program; automatically selecting one or more computing machines for use in executing one or more instances of the indicated program, the selected computing machines each being one of a plurality of computing machines that each belong to one of multiple groups, the selecting of the one or more computing machines being based at least in part on whether each of the selected computing machines is a member of a group that contains at least one machine with a stored copy of the indicated program from which the stored copy may be obtained and at least one computing machine that is available to execute the indicated program; and providing an indication to initiate execution of the indicated program on at least one of the selected computing machines, the at least one of the selected computing machines obtaining a local copy of the indicated program by; if it is determined that the at least one of the selected computing machines is in a group with at least one computing machine storing a copy of the indicated program, obtaining the local copy from the at least one computing machine storing a copy of the indicated program in the group; and if it is not determined that the at least one of the selected computing machines is in a group with at least one computing machine storing a copy of the indicated program, obtaining the local copy from one or more computing machines external to the group. - View Dependent Claims (41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67)
-
-
68. A system configured to manage execution of programs, comprising:
-
a memory; and a system manager module configured to, in response to a determination to execute at least one instance of an indicated program, automatically select one or more computing machines for executing one or more instances of the indicated program, the selected computing machines being from one or more of multiple groups, the selecting of a computing machine being based at least in part on whether the selected computing machine is a member of a group that includes one or more machines that have a stored copy of the indicated program from which the selected computing machine may obtain a copy of the indicated program, the selected computing machine not having a stored copy of the indicated program at a time of the selecting; and for each of the selected computing machines, if the selected computing machine is in a group with one or more other machines that store a local copy of the indicated program, instruct the selected computing machine to obtain a copy of the indicated program from at least one of the one or more other machines of the group; and if the selected computing machine is in a group without another machine that stores a local copy of the indicated program, instruct the selected computing machine to obtain a remote copy of the indicated program. - View Dependent Claims (69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81)
-
Specification