IP Library Granted Patent US 9,128,739
Granted Patent B1
US 9,128,739 · App. 13/731,663 · Granted Sep 8, 2015

Determining instances to maintain on at least one cloud responsive to an evaluation of performance characteristics

Inventors: Ari Juels (Brookline, MA); Kevin D. Bowers (Melrose, MA); Benjamin Farley (Seattle, WA); Venkatanathan Varadarajan (Madison, WI); Thomas Ristenpart (Madison, WI); Michael M. Swift (Madison, WI)
Assignee: EMC Corporation
G06F9/45533G06F9/4856G06F9/5077
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,128,739
App. No.
13/731,663
Filed
Dec 31, 2012
Granted
Sep 8, 2015
Kind
B1
Examiner
LEE, JAMES J
Art Unit
2195
USPC
718/1
Abstract

A method includes the step of running a set of instances on at least one cloud for a first time interval, each of the instances comprising a bundle of virtualized resources. The method also includes the step of evaluating one or more performance characteristics of each of the instances in the set of instances over the first time interval. The method further includes the step of determining a first subset of the set of instances to maintain for a second time interval and a second subset of the set of instances to terminate for the second time interval responsive to the evaluating step. The steps are performed by at least one processing device comprising a processor coupled to a memory.

Claims (69)

1. A method comprising the steps of:

running a set of instances on at least one cloud for a first time interval for a given processing job, each of the instances in the set of instances comprising a bundle of virtualized resources;

evaluating one or more performance characteristics of each of the instances in the set of instances over the first time interval;

separating the set of instances into a first subset of the set of instances to maintain for a second time interval and a second subset of the set of instances to terminate for the second time interval responsive to the evaluating step;

starting at least one additional instance on the at least one cloud for the second time interval to replace at least one of the instances in the second subset; and

migrating at least one of the instances in the second subset to the at least one additional instance;

wherein evaluating the one or more performance characteristics comprises determining an average performance level of the set of instances over the first time interval;

wherein separating the set of instances into the first subset and the second subset comprises:

determining a migration cost for migrating a given instance in the set of instances, the migration cost being amortized across an expected amount of time remaining for completion of the given processing job; and

placing the given instance in the second subset based at least in part on determining that a performance level of the given instance, taking into account the migration cost, is below the average performance level of the set of instances over the first time interval; and

wherein the steps are performed by at least one processing device comprising a processor coupled to a memory.

2. The method of claim 1 , wherein each of the instances in the set of instances comprises at least one virtual machine.

3. The method of claim 1 , wherein at least one of the instances in the set of instances is run on a first cloud and at least another one of the instances in the set of instances is run on a second cloud.

4. The method of claim 1 , wherein two or more of the instances in the set of instances are run on a single cloud.

5. The method of claim 1 , wherein the one or more performance characteristics of each of the instances in the set of instances comprises at least one performance characteristic for respective ones of the virtualized resources in the bundle of virtualized resources in each of the instances in the set of instances, wherein the virtualized resources comprise one or more of:

a central processing unit resource;

a memory resource;

a network resource;

a disk resource; and

an application resource.

6. The method of claim 1 , wherein the separating step is further responsive to an evaluation of one or more cloud characteristics of the at least one cloud.

7. The method of claim 6 , wherein the one or more cloud characteristics of the at least one cloud comprise one or more of:

an infrastructure of a provider of the at least one cloud;

hardware architectures of the at least one cloud; and

a network topology of the at least one cloud.

8. The method of claim 1 , wherein the separating step is further responsive to an evaluation of a historical performance of one or more instances in the set of instances on the at least one cloud.

9. The method of claim 1 , wherein the first and second subsets of the set of instances are separated so as to minimize a cost for completing the given processing job.

10. The method of claim 1 , wherein the first and second subsets of the set of instances are separated so as to minimize a time required to complete the given processing job.

11. The method of claim 1 , wherein the evaluating step further comprises determining a performance level for each of the instances in the set of instances, and wherein the first subset of instances comprise the instances in the set of instances with the highest performance level and the second subset of instances comprises the instances in the set of instances with the lowest performance level.

12. The method of claim 1 , wherein a number of additional instances started on the at least one cloud for the second time interval is less than a total number of instances in the second subset.

13. The method of claim 12 , wherein the number of additional instances is selected so as to maintain a specific number of instances for the second time interval.

14. The method of claim 1 , further comprising the step of repeating the evaluating, separating and starting steps for one or more additional time intervals.

15. The method of claim 1 , wherein the average performance level of the set of instances comprises an exponentially weighted moving average.

16. The method of claim 12 , wherein the number of additional instances is determined based at least in part on the expected amount of time remaining for completion the given processing job.

17. The method of claim 1 , wherein the at least one cloud comprises a plurality of servers, and wherein the running and starting steps utilize an application programming interface of the at least one cloud, the application programming interface not permitting control of assignment of instances to particular ones of the servers of the at least one cloud.

18. The method of claim 1 , wherein a number of instances in the first subset and a number of instances in the second subset are determined based at least in part on a limit of parallelization of the given processing job.

19. A computer program product comprising a non-transitory processor-readable storage medium having encoded therein executable code of one or more software programs, wherein the one or more software programs when executed cause at least one processing device to perform the steps of:

running a set of instances on at least one cloud for a first time interval for a given processing job, each of the instances in the set of instances comprising a bundle of virtualized resources;

evaluating one or more performance characteristics of each of the instances in the set of instances over the first time interval;

separating the set of instances into a first subset of the set of instances to maintain for a second time interval and a second subset of the set of instances to terminate for the second time interval responsive to the evaluating step;

starting at least one additional instance on the at least one cloud for the second time interval to replace at least one of the instances in the second subset; and

migrating at least one of the instances in the second subset to the at least one additional instance;

wherein evaluating the one or more performance characteristics comprises determining an average performance level of the set of instances over the first time interval; and

wherein separating the set of instances into the first subset and the second subset comprises:

determining a migration cost for migrating a given instance in the set of instances, the migration cost being amortized across an expected amount of time remaining for completion of the given processing job; and

placing the given instance in the second subset based at least in part on determining that a performance level of the given instance, taking into account the migration cost, is below the average performance level of the set of instances over the first time interval.

20. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory, the at least one processing device being configured to:

run a set of instances on at least one cloud for a first time interval for a given processing job, each of the instances in the set of instances comprising a bundle of virtualized resources;

evaluate one or more performance characteristics of each of the instances in the set of instances over the first time interval;

separate the set of instances into a first subset of the set of instances to maintain for a second time interval and a second subset of the set of instances to terminate for the second time interval responsive to the evaluation;

start at least one additional instance on the at least one cloud for the second time interval to replace at least one of the instances in the second subset; and

migrate at least one of the instances in the second subset to the at least one additional instance;

wherein the at least one processing device is configured to evaluate the one or more performance characteristics by determining an average performance level of the set of instances over the first time interval; and

wherein the at least one processing device is configured to separate the set of instances into the first subset and the second subset by:

determining a migration cost for migrating a given instance in the set of instances, the migration cost being amortized across an expected amount of time remaining for completion of the given processing job; and

placing the given instance in the second subset based at least in part on determining that a performance level of the given instance, taking into account the migration cost, is below the average performance level of the set of instances over the first time interval.

21. The apparatus of claim 20 , wherein the processing device comprises a mobile telephone.

22. The apparatus of claim 20 , wherein the processing device comprises a computer.

23. A user device, comprising:

an instances module configured to run a set of instances on at least one cloud for a first time interval for a given processing job, each of the instances in the set of instances comprising a bundle of virtualized resources;

an evaluation module configured to evaluate one or more performance characteristics of each of the instances in the set of instances over the first time interval; and

a subset determination module configured to separate the set of instances into a first subset of the set of instances to maintain for a second time interval and a second subset of the set of instances to terminate for the second time interval responsive to the evaluation;

wherein the instances module is further configured to start at least one additional instance on the at least one cloud for the second time interval to replace at least one of the instances in the second subset and to migrate at least one of the instances in the second subset to the at least one additional instance;

wherein the evaluation module is configured to evaluate the one or more performance characteristics by determining an average performance level of the set of instances over the first time interval; and

wherein the subset determination module is configured to separate the set of instances into the first subset and the second subset by:

determining a migration cost for migrating a given instance in the set of instances, the migration cost being amortized across an expected amount of time remaining for completion of the given processing job; and

placing the given instance in the second subset based at least in part on determining that a performance level of the given instance, taking into account the migration cost, is below the average performance level of the set of instances over the first time interval; and

wherein the instances module, evaluation module and subset determination module are implemented by at least one processing device comprising a processor coupled to a memory.

Assignments (12)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
CONFIRMATORY LICENSE Recorded May 15, 2015
From: UNIVERSITY OF WISCONSIN, MADISON
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 035705/0126 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2013
From: JUELS, ARI; BOWERS, KEVIN D.
To: EMC CORPORATION
Reel/Frame 030423/0172 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2013
From: RISTENPART, THOMAS; SWIFT, MICHAEL; VARADARAJAN, VENKATANATHAN; FARLEY, BENJAMIN
To: WISCONSIN ALUMNI RESEARCH FOUNDATION
Reel/Frame 030106/0866 →