IP Library Granted Patent US 10,783,472
Granted Patent B2
US 10,783,472 · App. 15/798,645 · Granted Sep 22, 2020

Applying machine learning to dynamically scale computing resources to satisfy a service level agreement (SLA)

Inventors: Dónal Carpenter (Wicklow, IE); Mahuya Ghosh (Hyderabad, IN)
Assignee: Dell Products L.P.
G06Q10/0635G06F9/45558G06N20/00G06Q50/18H04L41/0806H04L41/5009H04L43/08G06F2009/45595H04L43/16H04L67/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,783,472
App. No.
15/798,645
Granted
Sep 22, 2020
Kind
B2
Abstract

Some examples include a service to receive a job request that includes a job, a priority of the job, and a callback that identifies an application to execute the job. The application may be hosted by a particular virtual machine of a plurality of virtual machines being executed in a cloud hosting facility. The service may add the job request to a queue and determine, using a machine learning algorithm, a risk score associated with the job. Based at least in part on the risk score, the service may send a provisioning request to the cloud hosting facility to provision one or more additional virtual machines. After determining that the application has completed executing the job, the service may send a de-provisioning request to the cloud hosting facility to de-provision at least one virtual machine of the one or more additional virtual machines.

Claims (111)

1. A method comprising: receiving, by a service, a job request, the job request comprising:

a job,

a priority of the job, and

a callback that identifies an application to execute the job;

adding, by the service, the job request to a queue;

determining, by a machine learning algorithm comprising ordinary least squares, a risk score associated with the job, the risk score comprising a probability that completing the job will not satisfy a set of pre-defined constraints, the risk score determined based on a plurality of factors comprising:

the priority associated with the job; and

currently queued jobs in the queue including a number of the currently queued jobs and an individual priority associated with individual jobs in the currently queued jobs;

re-ordering the currently queued jobs in the queue based on a priority associated with each of the currently queued jobs in the queue;

based on determining that the job is at a head of the queue, invoking the callback to call the application to execute the job, wherein the application is hosted by one or more virtual machines of a plurality of virtual machines being executed in a cloud hosting facility; and

based on receiving an indication that the job has been completed:

marking the job as completed;

determining an environment state comprising:

the priority of the job;

an initial place of the job in the queue; and

a number of virtual machines used to execute other jobs ahead of the job in the queue; and

retraining the machine learning algorithm based at least in part on the environment state.

2. The method of claim 1 , further comprising:

in response to determining that the risk score is between a first threshold and a second threshold, allocating additional resources;

in response to determining that the risk score is between the second threshold and a third threshold, provisioning additional virtual machines; and

in response to determining that the risk score exceeds the third threshold, sending a notification to an administrator.

3. The method of claim 1 , further comprising:

receiving a second job request comprising a second job and a second application;

provisioning one or more additional virtual machines based at least in part on a second risk score associated with the second application; and

after determining that the second application associated with the second job has completed executing the second job, instructing the cloud hosting facility to de-provision at least one virtual machine of the one or more additional virtual machines.

4. The method of claim 1 , further comprising:

determining, by the service, that a difference between a capacity of the plurality of virtual machines of the cloud hosting facility and an estimated job effort associated with the currently queued jobs in the queue satisfies a system determined threshold; and

sending a de-provisioning request, by the service, to the cloud hosting facility to de-provision at least one virtual machine of the plurality of virtual machines.

5. The method of claim 1 , further comprising:

based on determining that a difference between a capacity of the plurality of virtual machines of the cloud hosting facility and an estimated job effort associated with completing the currently queued jobs in the queue fails to satisfy a system determined threshold, sending a provisioning request to the cloud hosting facility to provision a number of additional virtual machines, the number of additional virtual machines determined at in least in part on the difference.

6. The method of claim 1 , wherein:

a the set of pre-defined constraints are specified by a service level agreement associated with the job.

7. The method of claim 1 , wherein the plurality of factors further comprise:

an estimated number of resources and virtual machines to complete the currently queued jobs;

one or more date-time related factors;

additional criteria provided by the application in the job request; and

a number of currently provisioned virtual machines.

8. A service to perform operations comprising: receiving a job request comprising:

a job,

a priority of the job, and

a callback that identifies an application to execute the job;

adding the job request to a queue;

determining, using a machine learning algorithm comprising ordinary least squares, a risk score associated with the job, the risk score comprising a probability that completing the job will not satisfy a set of pre-defined constraints, the risk score determined based on a plurality of factors comprising:

the priority associated with the job; and

currently queued jobs in the queue including a number of the currently queued jobs and an individual priority associated with individual jobs in the currently queued jobs;

re-ordering the currently queued jobs in the queue based on a priority associated with each of the currently queued jobs in the queue;

based on determining that the job is at a head of the queue, invoking the callback to call the application to execute the job, wherein the application is hosted by one or more virtual machines of a plurality of virtual machines being executed in a cloud hosting facility; and

based on receiving an indication that the job has been completed:

marking the job as completed;

determining an environment state comprising:

the priority of the job;

an initial place of the job in the queue; and

an amount of virtual machines used to execute other jobs ahead of the job in the queue; and

retraining the machine learning algorithm based at least in part on the environment state.

9. The service of claim 8 , the operations further comprising:

in response to determining that the risk score is between a first threshold and a second threshold, allocating additional resources;

in response to determining that the risk score is between the second threshold and a third threshold, provisioning additional virtual machines; and

in response to determining that the risk score exceeds the third threshold, sending a notification to an administrator.

10. The service of claim 8 , the operations further comprising:

receiving a second job request comprising a second job and a second application;

provisioning one or more additional virtual machines based at least in part on a second risk score associated with the second application; and

after determining that the second application associated with the second job has completed executing the second job instructing the cloud hosting facility to de-provision at least one virtual machine of the one or more additional virtual machines.

11. The service of claim 8 , the operations further comprising:

based on determining that a difference between a capacity of the plurality of virtual machines of the cloud hosting facility and an estimated job effort associated with completing the currently queued jobs in the queue satisfies a predetermined threshold instructing the cloud hosting facility to de-provision at least one virtual machine of the plurality of virtual machines.

12. The service of claim 8 , wherein:

a the set of pre-defined constraints are specified by a service level agreement associated with the job, wherein the job request identifies the service level agreement.

13. The service of claim 8 , wherein the plurality of factors further comprise:

an estimated number of resources and virtual machines to complete the currently queued jobs;

one or more date-time related factors;

one or more additional factors supplied within the job request; and

a number of currently provisioned virtual machines.

14. One or more non-transitory computer-readable media storing instructions that are executable by one or more processors to perform operations comprising:

receiving, by a service, a job request, the job request comprising:

a job,

a priority of the job, and

a callback that identifies an application to execute the job;

adding, by the service, the job request to a queue;

determining, by a machine learning algorithm comprising ordinary least squares, a risk score associated with the job, the risk score comprising a probability that completing the job will not satisfy a set of pre-defined constraints, the risk score determined based on a plurality of factors comprising:

the priority associated with the job; and

currently queued jobs in the queue including a number of the currently queued jobs and an individual priority associated with individual jobs in the currently queued jobs;

re-ordering the currently queued jobs in the queue based on a priority associated with each of the currently queued jobs in the queue;

based on determining that the job is at a head of the queue, invoking the callback to call the application to execute the job, wherein the application is hosted by one or more virtual machines of a plurality of virtual machines being executed in a cloud hosting facility; and

based on receiving an indication that the job has been completed:

marking the job as completed;

determining an environment state comprising:

the priority of the job;

an initial place of the job in the queue; and

an amount of virtual machines used to execute other jobs ahead of the job in the queue; and

retraining the machine learning algorithm based at least in part on the environment state.

15. The one or more non-transitory computer-readable media of claim 14 , the operations further comprising:

in response to determining that the risk score is between a first threshold and a second threshold, allocating additional resources;

in response to determining that the risk score is between the second threshold and a third threshold, provisioning additional virtual machines; and

in response to determining that the risk score exceeds the third threshold, sending a notification to an administrator.

16. The one or more non-transitory computer-readable media of claim 14 , the operations further comprising:

receiving a second job request comprising a second job and a second application;

provisioning one or more additional virtual machines based at least in part on a second risk score associated with the second application; and

after determining that the second application has completed executing the second job, instructing the cloud hosting facility to de-provision at least one virtual machine of the one or more additional virtual machines.

17. The one or more non-transitory computer-readable media of claim 14 , the operations further comprising:

determining that a difference between a capacity of the plurality of virtual machines of the cloud hosting facility and an estimated job effort associated with completing the currently queued jobs in the queue of the service satisfies a predetermined threshold; and

sending a de-provisioning request to the cloud hosting facility to de-provision at least one virtual machine of the plurality of virtual machines.

18. The one or more non-transitory computer-readable media of claim 14 , wherein:

the set of pre-defined constraints are specified by a service level agreement associated with the job.

19. The one or more non-transitory computer-readable media of claim 14 , wherein the plurality of factors further comprise:

an estimated number of resources and virtual machines to complete the currently queued jobs;

one or more date-time related factors;

one or more additional factors supplied within the job request; and

a number of currently provisioned virtual machines.

20. The one or more non-transitory computer-readable media of claim 14 , the operations further comprising:

re-ordering the currently queued jobs in the queue based at least in part on:

an individual risk score associated with each queued job of the currently queued jobs; and

an individual priority associated with each queued job of the currently queued jobs.

Assignments (8)
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 (044535/0109) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0414 →
RELEASE OF SECURITY INTEREST AT REEL 044535 FRAME 0001 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058298/0475 →
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 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 044535/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 044535/0109 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2017
From: CARPENTER, DÓNAL; GHOSH, MAHUYA
To: DELL PRODUCTS L. P.
Reel/Frame 043991/0231 →
Continuity (1)
Related Publication 20190130327A1 · May 2, 2019
Cited By (2)
US 12,423,129 US 12,547,518