IP Library Granted Patent US 11,582,166
Granted Patent B2
US 11,582,166 · App. 17/339,936 · Granted Feb 14, 2023

Systems and methods for provision of a guaranteed batch

Inventors: Alexandre Duarte (Milpitas, CA); Yingchong Situ (Campell, CA); Robert van Gent (Redwood City, CA); Walfredo Cime Filho (Palo Alto, CA); Ramy Abdelaal (Waterloo, CA); Smeeta Jalan (San Jose, CA); Maya Haridasan (San Jose, CA)
Assignee: Google LLC
H04L47/78G06F9/5005G06F9/5027G06F9/5061H04L41/14H04L41/147H04L41/50H04L41/5009H04L43/55
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 11,582,166
App. No.
17/339,936
Granted
Feb 14, 2023
Kind
B2
Abstract

Systems and methods for providing a guaranteed batch pool are described, including receiving a job request for execution on the pool of resources; determining an amount of time to be utilized for executing the job request based on available resources from the pool of resources and historical resource usage of the pool of resources; determining a resource allocation from the pool of resources, wherein the resource allocation spreads the job request over the amount of time; determining that the job request is capable of being executed for the amount of time; and executing the job request over the amount of time, according to the resource allocation.

Claims (43)

1. A computer-implemented method when executed on data processing hardware causes the data processing hardware to perform operations, the operations comprising:

receiving a request initiated by a user to execute a list of tasks on computing resources in a computing environment;

determining a resource allocation budget uniquely associated with the user, the resource allocation budget representing a maximum amount of computing resources the user can consume from the computing environment;

determining resource commitments associated with the user, the resource commitments corresponding to consumed computing resources executing one or more tasks;

identifying, from the computing environment, computing resources available to the user based on:

the determined resource allocation budget uniquely associated with the user; and

the resource commitments associated with the user; and

allocating the identified computing resources available to the user to execute the list of tasks.

2. The computer-implemented method of claim 1 , wherein the resource allocation budget comprises a maximum amount of central processing units (CPUs).

3. The computer-implemented method of claim 1 , wherein allocating the identified computing resources comprises transitioning the request from a submitted state to an admitted state, the admitted state indicating that the list of tasks are ready to execute on the identified computing resources available to the user.

4. The computer-implemented method of claim 1 , wherein the list of tasks of the request comprises a specification that indicates dependencies for one or more of the tasks in the list of tasks.

5. The computer-implemented method of claim 4 , wherein the dependencies define a concurrent run process for two or more of the tasks in the list of tasks.

6. The computer-implemented method of claim 4 , wherein the dependencies define a consecutive run process for two or more of the tasks in the list of tasks.

7. The computer-implemented method of claim 4 , wherein the dependencies define a disablement priority for at least one task in the list of tasks.

8. The computer-implemented method of claim 1 , wherein the operations further comprise determining that the list of tasks are capable of being executed for an amount of time identified by a time requirement associated with the request.

9. The computer-implemented method of claim 1 , wherein the operations further comprise:

determining a downtime associated with the request;

determining whether the downtime exceeds a maximum downtime for the request; and

when the downtime does exceed the maximum downtime for the request, determining that the request is not capable of being executed.

10. The computer-implemented method of claim 1 , wherein allocating the identified computing resources available to the user is based on historical resource usage for tasks previously executed by the user.

11. A system comprising:

data processing hardware; and

memory hardware in communication with the data processing hardware, the memory hardware storing instructions that when executed on the data processing hardware cause the data processing hardware to perform operations comprising:

receiving a request initiated by a user to execute a list of tasks on computing resources in a computing environment;

determining a resource allocation budget uniquely associated with the user, the resource allocation budget representing a maximum amount of computing resources the user can consume from the computing environment;

determining resource commitments associated with the user, the resource commitments corresponding to consumed computing resources executing one or more tasks;

executing one or more tasks;

identifying, from the computing environment, computing resources available to the user based on:

the determined resource allocation budget uniquely associated with the user; and

the present current resource commitments associated with the user; and

allocating the identified computing resources available to the user to execute the list of tasks.

12. The system of claim 11 , wherein the resource allocation budget comprises a maximum amount of central processing units (CPUs).

13. The system of claim 11 , wherein allocating the identified computing resources comprises transitioning the request from a submitted state to an admitted state, the admitted state indicating that the list of tasks are ready to execute on the identified computing resources available to the user.

14. The system of claim 11 , wherein the list of tasks of the request comprises a specification that indicates dependencies for one or more of the tasks in the list of tasks.

15. The system of claim 14 , wherein the dependencies define a concurrent run process for two or more of the tasks in the list of tasks.

16. The system of claim 14 , wherein the dependencies define a consecutive run process for two or more of the tasks in the list of tasks.

17. The system of claim 14 , wherein the dependencies define a disablement priority for at least one task of the list in tasks.

18. The system of claim 11 , wherein the operations further comprise determining that the list of tasks are capable of being executed for an amount of time identified by a time requirement associated with the request.

19. The system of claim 11 , wherein the operations further comprise:

determining a downtime associated with the request;

determining whether the downtime exceeds a maximum downtime for the request; and

when the downtime does exceed the maximum downtime for the request, determining that the request is not capable of being executed.

20. The system of claim 11 , wherein allocating the identified computing resources available to the user is based on historical resource usage for tasks previously executed by the user.

Continuity (3)
Continuation 16717967 · Dec 17, 2019
Continuation 15677916 · Aug 15, 2017
Related Publication 20210297364A1 · Sep 23, 2021