IP Library Granted Patent US 10,003,550
Granted Patent B1
US 10,003,550 · App. 14/211,541 · Granted Jun 19, 2018

Smart autoscaling of a cluster for processing a work queue in a distributed system

Inventors: Trevor Babcock (Portland, OR); Dustin Encelewski (Clackamas, OR)
Assignee: Amazon Technologies
H04L47/823
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 10,003,550
App. No.
14/211,541
Granted
Jun 19, 2018
Kind
B1
Abstract

An apparatus comprising a method for allocating shared processing resources, comprising the steps of (A) predicting a first amount of processing resources needed to complete each of a plurality of transcoding jobs in a work queue of a project, (B) determining a second amount of processing resources available prior to processing the project and (C) adding processing resources needed to complete the project. The processing resources are added in a fixed number of predetermined processing units. The fixed number of computer resources are added (a) to minimize an overall use of said processing resources needed to complete the project and (b) to complete the project within a target time.

Claims (27)

1. A method for allocating shared processing resources, comprising the steps of:

predicting a first amount of processing resources sufficient to complete each of a plurality of transcoding jobs in a work queue of a project;

reserving a second amount of processing resources available prior to processing said plurality of transcoding jobs in the work queue based at least in part on the work in the work queue;

adding processing resources sufficient to complete said project prior to processing said plurality of transcoding jobs in the work queue based at least in part on the work in the work queue, wherein said processing resources are added in a number of predetermined processing units upon determining that a volume of the work to be processed associated with the plurality of transcoding jobs in the work queue is greater than a threshold value and determining a level of difficulty of the work to be processed, the level of difficulty of the work indicating which of said processing resources are utilizable to perform the work; and

configuring an overall use of said processing resources sufficient to complete said project within a target time by adding said number of predetermined processing units based at least in part on the volume of the work to be processed and the level of difficulty of the work to be processed associated with said plurality of transcoding jobs in the work queue.

2. The method according to claim 1 , wherein said method minimizes an overall cost need to complete said project.

3. The method according to claim 1 , wherein each of said number of predetermined processing units is enabled in response to a respective one of a plurality of predetermined levels.

4. The method according to claim 1 , wherein said number of predetermined processing units are disabled after said work queue is below a predetermined level.

5. The method according to claim 1 , wherein each of said number of predetermined processing resources are enabled proactively in response to a size of said work queue.

6. The method according to claim 1 , wherein said steps of predicting a first amount of processing resources and reserving a second amount of processing resources are performed on a server.

7. The method according to claim 6 , wherein said server comprises a server provisioned in a shared source configuration.

8. The method according to claim 1 , wherein said number of predetermined processing resources comprise video processing engines in a shared resource configuration.

9. The method according to claim 1 , wherein said method reserves said processing resources for use at a future time, wherein said future time is determined based on the step of reserving a second amount of processing resources.

10. The method according to claim 1 , wherein said number of predetermined processing resources are added by initiating code in accordance with a shared resource configuration protocol.

11. A non-transitory computer readable medium including instructions stored thereon which, when executed by a processor, cause the processor to perform the steps of: predicting a first amount of processing resources sufficient to complete each of a plurality of transcoding jobs in a work queue of a project;

reserving a second amount of processing resources available prior to processing said plurality of transcoding jobs in the work queue based at least in part on the work in the work queue;

adding processing resources sufficient to complete said project prior to processing said plurality of transcoding jobs in the work queue based at least in part on the work in the work queue, wherein said processing resources are added in a number of predetermined processing units upon determining a volume of the work to be processed associated with the plurality of transcoding jobs in the work queue is greater than a threshold value and determining a level of difficulty of the work to be processed, the level of difficulty of the work indicating which of said processing resources are utilizable to perform the work; and

configuring an overall use of said processing resources to sufficient complete said project within a target time by adding said number of predetermined processing units based at least in part on the volume of the work to be processed associated with said plurality of transcoding jobs in the work queue.

12. The non-transitory computer readable medium according to claim 11 , wherein said instructions, when executed by the processor, minimize an overall cost needed to complete said project.

13. The non-transitory computer readable medium according to claim 11 , wherein each of the said number of predetermined processing units is enabled in response to a respective one of a plurality of predetermined levels.

14. The non-transitory computer readable medium according to claim 11 , wherein said number of predetermined processing units are disabled after said work queue is below a predetermined level.

15. The non-transitory computer readable medium according to claim 11 , wherein each of said number of predetermined processing resources are enabled proactively in response to a size of said work queue.

16. The non-transitory computer readable medium according to claim 11 , wherein said instructions, when executed by the processor, implement the steps of predicting a first amount of processing resources and reserving a second amount of processing resources on a server.

17. The non-transitory computer readable medium according to claim 16 , wherein said server comprises a server provisioned in a shared resource configuration.

18. The non-transitory computer readable medium according to claim 11 , wherein said number of predetermined processing resources comprise video processing engines in a shared resource configuration.

19. The non-transitory computer readable medium according to claim 11 , wherein said method reserves said number of predetermined processing resources for use at a future tine, wherein said future time is determined based on the step of reserving a second amount of processing resources.

20. The non-transitory computer readable medium according to claim 11 , wherein said number of predetermined processing resources are added by initiating code in accordance with a shared resource configuration protocol.

Assignments (3)
BILL OF SALE Recorded Jan 12, 2016
From: ELEMENTAL TECHNOLOGIES LLC
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 037486/0985 →
CERTIFICATE OF CONVERSION Recorded Jan 12, 2016
From: ELEMENTAL TECHNOLOGIES, INC.
To: ELEMENTAL TECHNOLOGIES LLC
Reel/Frame 037486/0995 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2014
From: BABCOCK, TREVOR; ENCELEWSKI, DUSTIN
To: ELEMENTAL TECHNOLOGIES, INC.
Reel/Frame 032451/0262 →
Cited By (9)
US 12,200,008 US 12,248,821 US 12,255,950 US 12,316,601 US 12,327,146 US 12,340,257 US 12,430,185 US 12,436,809 US 12,511,175