IP Library Granted Patent US 11,032,212
Granted Patent B2
US 11,032,212 · App. 16/717,967 · Granted Jun 8, 2021

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/5009H04L41/5038
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,032,212
App. No.
16/717,967
Granted
Jun 8, 2021
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 (38)

1. A method comprising:

receiving, at data processing hardware, a request corresponding to a batch workload for execution on computing resources of a computing environment, the request comprising a list of tasks requesting execution on the computing resources;

determining, by the data processing hardware, a resource allocation budget uniquely associated with a user that initiates the request, the resource allocation budget representing a maximum amount of computing resources the user can consume from the computing environment that is less than a total amount of computing resources of the computing environment;

determining, by the data processing hardware, resource commitments for the user associated with the request, the resource commitments corresponding to a job queue for the user;

identifying, by the data processing hardware, a specification corresponding to the request that indicates dependencies for one or more tasks of the list of tasks; and

allocating, by the data processing hardware, computing resources to tasks of the request based on the resource allocation budget, the resource commitments, and the dependencies of the list of tasks.

2. The method of claim 1 , wherein allocating computing resources to tasks of the request comprises transitioning the request from a submitted state residing in the job queue to an admitted state, the admitted state indicating that a batch scheduler is ready to execute the request.

3. The method of claim 1 , wherein the dependencies define a concurrent run process for two or more tasks of the list of tasks.

4. The method of claim 1 , wherein the dependencies define a consecutive run process for two or more tasks of the list of tasks.

5. The method of claim 1 , wherein the dependencies define a disablement priority for at least one task of the list of tasks.

6. The method of claim 1 , further comprising determining, by the data processing hardware, that the request is capable of being executed for an amount of time identified by a time requirement associated with the request.

7. The method of claim 1 , further comprising:

determining, by the data processing hardware, a downtime associated with the request;

determining, by the data processing hardware, that the amount of time downtime does not exceed a maximum downtime for the request; and

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

8. The method of claim 1 , wherein allocating computing resources to tasks of the request comprises determining an resource allocation for each unit of time based on the resource allocation budget uniquely associated with the user and available resources from the computing environment for each respective period of time.

9. The method of claim 1 , wherein allocating the computing resources to tasks of the request is additionally based on historical resource usage for jobs executed by the user.

10. The method of claim 1 , wherein the request further comprises a service level objective and an allocation of computing resources to the tasks of the request satisfies the service level objective.

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 corresponding to a batch workload for execution on computing resources of a computing environment, the request comprising a list of tasks requesting execution on the computing resources;

determining a resource allocation budget uniquely associated with a user that initiates the request, the resource allocation budget representing a maximum amount of computing resources the user can consume from the computing environment that is less than a total amount of computing resources of the computing environment;

determining resource commitments for the user associated with the request, the resource commitments corresponding to a job queue for the user;

identifying a specification corresponding to the request that indicates dependencies for one or more tasks of the list of tasks; and

allocating computing resources to tasks of the request based on the resource allocation budget, the resource commitments, and the dependencies of the list of tasks.

12. The system of claim 11 , wherein allocating computing resources to tasks of the request comprises transitioning the request from a submitted state residing in the job queue to an admitted state, the admitted state indicating that a batch scheduler is ready to execute the request.

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

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

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

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

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

determining a downtime associated with the request

determining that the downtime does not exceed 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.

18. The system of claim 11 , wherein allocating computing resources to tasks of the request comprises determining an resource allocation for each unit of time based on the resource allocation budget uniquely associated with the user and available resources from the computing environment for each respective period of time.

19. The system of claim 11 , wherein allocating the computing resources to tasks of the request is additionally based on historical resource usage for jobs executed by the user.

20. The system of claim 11 , wherein the request further comprises a service level objective and an allocation of computing resources to the tasks of the request satisfies the service level objective.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2019
From: DUARTE, ALEXANDRE; SITU, YINGCHONG; VAN GENT, ROBERT; FILHO, WALFREDO CIRNE; JALAN, SMEETA; HARIDASAN, MAYA
To: GOOGLE INC.
Reel/Frame 051320/0280 →
CONVERSION Recorded Dec 18, 2019
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 051444/0604 →
Continuity (2)
Continuation 15677916 · Aug 15, 2017
Related Publication 20200127938A1 · Apr 23, 2020