IP Library Granted Patent US 10,749,813
Granted Patent B1
US 10,749,813 · App. 15/079,406 · Granted Aug 18, 2020

Spatial-temporal cloud resource scheduling

Inventors: Accela Zhao (Shanghai, CN); Yu Cao (Beijing, CN); Simon Tao (Shanghai, CN); Sanping Li (Beijing, CN); Kenneth Durazzo (San Ramon, CA)
Assignee: EMC IP Holding Company LLC
H04L47/70H04L47/805H04L67/10
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,749,813
App. No.
15/079,406
Granted
Aug 18, 2020
Kind
B1
Abstract

A scheduler module receives a first allocation request for a given amount of a resource in a cloud computing platform that an application program currently needs. The scheduler module allocates the given amount of the resource to the application program for a first time slot. The given amount of allocated resource is received back at the scheduler module upon expiration of the first time slot for subsequent allocation. The scheduler module receives a second allocation request for a given amount of a resource that an application program currently needs. The scheduler module allocates the given amount of the resource to the application program for a second time slot. The given amount of allocated resource is received back at the scheduler module upon expiration of the second time slot for subsequent allocation.

Claims (45)

1. A method, comprising:

receiving, at a scheduler module, a first allocation request for a given amount of a resource in a cloud computing platform that an application program currently needs, the application program being a cloud-based application;

allocating, via the scheduler module, availability of the given amount of the resource requested in the first allocation request to the application program for a first time slot, wherein the first time slot is equivalent to at least a portion of a given time period needed by the application program;

receiving, at the scheduler module, availability of the given amount of allocated resource back from the application program upon expiration of the first time slot for subsequent allocation to one or more additional application programs, the one or more additional application programs each being a cloud-based application;

receiving, at the scheduler module, a second allocation request for a given amount of a resource that the application program currently needs;

allocating, via the scheduler module, availability of the given amount of the resource requested in the second allocation request to the application program for a second time slot, wherein the second time slot is equivalent to at least a portion of the given time period needed by the application program;

receiving, at the scheduler module, availability of the given amount of allocated resource back from the application program upon expiration of the second time slot for subsequent allocation to the one or more additional application programs; and

repeating the request receiving, allocating, and receiving back steps for one or more additional time slots when needed for the given time period by the application program;

wherein the first allocation request and the second allocation request are received from a manager module instantiated for the application program;

wherein the manager module includes one or more prediction algorithms configured to dynamically predict the given amount of the resource that the application program needs for at least a given one of the first and second time slots based on actual consumption of allocated resources by the application program during at least one time slot prior to the given one of the first and second time slots;

wherein at least one of allocating availability of the given amount of the resource requested in the first allocation request to the application program in the first time slot and allocating availability of the given amount of the resource requested in the second allocation request to the application program in the second time slot comprises deploying one or more application instances in one or more virtual containers, each virtual container being associated with a kernel control group configured to limit resource consumption by a corresponding one of the application instances to the given amount of the resource requested in the at least one of the first time slot and the second time slot; and

wherein the cloud computing platform, the manager module and the scheduler module are implemented on one or more processing devices operatively coupled by a communication network.

2. The method of claim 1 , wherein for the same resource type, the given amount of resource requested in the second allocation request is a different amount than the given amount of resource requested in the first allocation request.

3. The method of claim 1 , further comprising the scheduler module determining which specific resources in the cloud computing platform to allocate to the application program for the first and second allocation requests.

4. The method of claim 3 , further comprising the scheduler module binding the specific resources to the first and second time slots to which they are respectively allocated.

5. The method of claim 1 , further comprising the scheduler module responding to resource allocation requests for the application program or the one or more additional programs on a priority basis.

6. The method of claim 1 , wherein, when the resource requested is a persistent resource, the scheduler module attempts to allocate the given amount of the resource for the second allocation request in the same location in the cloud computing platform as the given amount of the resource allocated for the first allocation request.

7. The method of claim 1 , further comprising maintaining an agent module at the allocated resource to enforce that the application program uses no more of the resource than that which is allocated by the scheduler module.

8. The method of claim 1 , wherein the allocated resources for each of the first time slot and the second time slot are resources needed to execute an instance of the application program.

9. The method of claim 8 , further comprising terminating the application program instance when allocation of resources is not requested for a subsequent time slot.

10. The method of claim 1 , wherein the one or more prediction algorithms are configured to dynamically predict the given amount of the resource that the application program needs for the first and second time slots, and further comprising batching the first and second allocation requests.

11. The method of claim 1 , wherein the application program is a service-based application program.

12. The method of claim 1 , wherein the application program is configured to exhibit at least one of a resource-elastic attribute or a terminate-safe attribute.

13. The method of claim 1 , wherein the application program is packaged in a virtual container.

14. The method of claim 1 , wherein the given amount of the resource allocated for each of the first and second time slots is selected to attempt to satisfy a service level agreement (SLA) satisfaction metric established between an owner of the application program and a service provider of the cloud computing platform.

15. The method of claim 14 , wherein the allocation of the given amount of the resource for each of the first and second time slots attempts to increase a resource usage efficiency metric of the cloud computing platform.

16. The method of claim 1 , wherein the manager module is configured to dynamically determine the given amount of allocated resource needed to comply with one or more service level agreement satisfaction metrics while reducing a gap between (i) an amount of resources allocated to the allocation program across a plurality of time slots of the given time period and (ii) actual consumption of allocated resources by the application program across the plurality of time slots of the given time period.

17. The method of claim 1 , wherein the manager module is configured to dynamically change, utilizing the one or more prediction algorithms, a request for a given other amount of resources in the one or more additional time slots based on a change in the given time period needed by the application program.

18. An article of manufacture comprising a processor-readable storage medium having encoded therein executable code of one or more software programs, wherein the one or more software programs when executed by one or more processing devices cause the one or more processing devices to perform the steps of:

receiving, at a scheduler module, a first allocation request for a given amount of a resource in a cloud computing platform that an application program currently needs, the application being a cloud-based application;

allocating, via the scheduler module, availability of the given amount of the resource requested in the first allocation request to the application program for a first time slot, wherein the first time slot is equivalent to at least a portion of a given time period needed by the application program;

receiving, at the scheduler module, availability of the given amount of allocated resource back from the application program upon expiration of the first time slot for subsequent allocation to one or more additional application programs, the one or more additional application programs each being a cloud-based application;

receiving, at the scheduler module, a second allocation request for a given amount of a resource that the application program still currently needs;

allocating, via the scheduler module, availability of the given amount of the resource requested in the second allocation request to the application program for a second time slot, wherein the second time slot is equivalent to at least a portion of the given time period needed by the application program;

receiving, at the scheduler module, availability of the given amount of allocated resource back from the application program upon expiration of the second time slot for subsequent allocation to the one or more additional application programs; and

repeating the request receiving, allocating, and receiving back steps for one or more additional time slots when needed for the given time period by the application program;

wherein the first allocation request and the second allocation request are received from a manager module instantiated for the application program;

wherein the manager module includes one or more prediction algorithms configured to dynamically predict the given amount of the resource that the application program needs for at least a given one of the first and second time slots based on actual consumption of allocated resources by the application program during at least one time slot prior to the given one of the first and second time slots; and

wherein at least one of allocating availability of the given amount of the resource requested in the first allocation request to the application program in the first time slot and allocating availability of the given amount of the resource requested in the second allocation request to the application program in the second time slot comprises deploying one or more application instances in one or more virtual containers, each virtual container being associated with a kernel control group configured to limit resource consumption by a corresponding one of the application instances to the given amount of the resource requested in the at least one of the first time slot and the second time slot.

19. An apparatus, comprising:

at least one processor and a memory, operatively coupled to the processor, configured to form a scheduler module to: receive a first allocation request for a given amount of a resource in a cloud computing platform that an application program currently needs, the application being a cloud-based application; allocate availability of the given amount of the resource requested in the first allocation request to the application program for a first time slot, wherein the first time slot is equivalent to at least a portion of a given time period needed by the application program; receive availability of the given amount of allocated resource back from the application program upon expiration of the first time slot for subsequent allocation to one or more additional application programs, the one or more additional application programs each being a cloud-based application; receive a second allocation request for a given amount of a resource that the application program still currently needs; allocate availability of the given amount of the resource requested in the second allocation request to the application program for a second time slot, wherein the second time slot is equivalent to at least a portion of the given time period needed by the application program; receive availability of the given amount of allocated resource back from the application program upon expiration of the second time slot for subsequent allocation to the one or more additional application programs; and repeat the request receiving, allocating, and receiving back steps for one or more additional time slots when needed for the given time period by the application program;

wherein the first allocation request and the second allocation request are received from a manager module instantiated for the application program; and

wherein the manager module includes one or more prediction algorithms configured to dynamically predict the given amount of the resource that the application program needs for at least a given one of the first and second time slots based on actual consumption of allocated resources by the application program during at least one time slot prior to the given one of the first and second time slots; and

wherein at least one of allocating availability of the given amount of the resource requested in the first allocation request to the application program in the first time slot and allocating availability of the given amount of the resource requested in the second allocation request to the application program in the second time slot comprises deploying one or more application instances in one or more virtual containers, each virtual container being associated with a kernel control group configured to limit resource consumption by a corresponding one of the application instances to the given amount of the resource requested in the at least one of the first time slot and the second time slot.

20. The article of manufacture of claim 19 , wherein the manager module is configured to dynamically determine the given amount of allocated resource needed to comply with one or more service level agreement satisfaction metrics while reducing a gap between (i) an amount of resources allocated to the allocation program across a plurality of time slots of the given time period and (ii) actual consumption of allocated resources by the application program across the plurality of time slots of the given time period.

Assignments (6)
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2020
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052438/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 Jan 20, 2017
From: ZHAO, ACCELA; CAO, YU; TAO, SIMON; LI, SANPING
To: EMC CORPORATION
Reel/Frame 041026/0925 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2017
From: DURAZZO, KENNETH
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041027/0071 →
Cited By (3)
US 12,321,788 US 12,512,951 US 12,699,591