IP Library Granted Patent US 12,169,738
Granted Patent B2
US 12,169,738 · App. 18/514,981 · Granted Dec 17, 2024

Allocating computing resources based on user intent

Inventors: David J. Helstroom (Palo Alto, CA); Patricia Weir (San Francisco, CA); Cameron Cody Smith (San Francisco, CA); Zachary A. Hirsch (Sunnyvale, CA); Ulric B. Longyear (Mountain View, CA)
Assignee: Google LLC
G06F9/50G06F9/5005G06F9/5011G06F9/5016G06F9/5022G06F9/5027G06F9/5033G06F9/5038G06F9/5044G06F9/505G06F9/5055G06F9/5061G06F9/5072G06F9/5083
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 12,169,738
App. No.
18/514,981
Granted
Dec 17, 2024
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for allocating computing resources. In one aspect, a method includes receiving intent data specifying one or more computing services to be hosted by a computing network, requested characteristics of computing resources for use in hosting the computing service, and a priority value for each requested characteristic. A budget constraint is identified for each computing service. Available resources data is identified that specifies a set of available computing resources. A resource allocation problem for allocating computing resources for the one or more computing resources is generated based on the intent data, each budget constraint, and the available resources data. At least a portion of the set of computing resources is allocated for the one or more computing services based on results of evaluating the resource allocation problem to meet a particular resource allocation objective.

Claims (56)

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

receiving a request for one or more computing resources from a plurality of computing resources to implement a computing service, each computing resource of the plurality of computing resources comprising one or more characteristics, the request comprising:

intent data specifying multiple requested characteristics of the requested one or more computing resources to implement the computing service; and

a resource allocation objective prioritizing at least one of the multiple requested characteristics over each other requested characteristic of the multiple requested characteristics;

determining a first group of computing resources from the plurality of computing resources based on the intent data and the resource allocation objective, wherein, while determining the first group of computing resources, each computing resource of the plurality of computing resources is considered to have infinite capacity;

allocating implementation of the computing service to the first group of computing resources;

receiving an actual capacity for each computing resource of the plurality of computing resources;

determining, using the actual capacity for each computing resource of the plurality of computing resources, a second group of computing resources from the plurality of computing resources based on the intent data and the resource allocation objective; and

reallocating implementation of the computing service to the second group of computing resources.

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

determining the second group of computing resources will exceed a budget constraint; and

in response to determining the second group of computing resources will exceed the budget constraint, performing an action with respect to the second group of computing resources.

3. The computer-implemented method of claim 2 , wherein:

performing the action with respect to the second group of computing resources comprises determining a third group of computing resources from the plurality of computing resources; and

the third group of computing resources is different from the second group of computing resources and will not exceed the budget constraint.

4. The computer-implemented method of claim 3 , wherein performing the action with respect to the second group of computing resources comprises providing, for the computing service, access to the third group of computing resources in response to determining that allocation of the computing service to the third group of computing resources will not exceed the budget constraint.

5. The computer-implemented method of claim 2 , wherein performing the action with respect to the second group of computing resources comprises sending, to a client device, data specifying the second group of computing resources and information related to the second group of computing resources.

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

generating a resource allocation problem for allocating computing resources to meet the resource allocation objective; and

solving the resource allocation problem.

7. The computer-implemented method of claim 6 , wherein solving the resource allocation problem comprises:

determining, based on allocation data, that the second group of computing resources will exceed an allocation constraint;

updating the resource allocation problem in response to determining that the second group of computing resources will exceed the allocation constraint; and

determining, using the updated resource allocation problem, a third group of computing resources.

8. The computer-implemented method of claim 6 , wherein the resource allocation problem comprises at least one of a linear programming problem or a mixed integer programming problem.

9. The computer-implemented method of claim 6 , wherein solving the resource allocation problem includes identifying one or more underlying computing services and one or more underlying computing resources that will be used to provide the computing service using a translation function for the computing service.

10. The computer-implemented method of claim 6 , wherein the resource allocation problem comprises a graph.

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 by the data processing hardware cause the data processing hardware to perform operations comprising:

receiving a request for one or more computing resources from a plurality of computing resources to implement a computing service, each computing resource of the plurality of computing resources comprising one or more characteristics, the request comprising:

intent data specifying multiple requested characteristics of the requested one or more computing resources to implement the computing service; and

a resource allocation objective prioritizing at least one of the multiple requested characteristics over each other requested characteristic of the multiple requested characteristics;

determining a first group of computing resources from the plurality of computing resources based on the intent data and the resource allocation objective, wherein, while determining the first group of computing resources, each computing resource of the plurality of computing resources is considered to have infinite capacity;

allocating implementation of the computing service to the first group of computing resources;

receiving an actual capacity for each computing resource of the plurality of computing resources;

determining, using the actual capacity for each computing resource of the plurality of computing resources, a second group of computing resources from the plurality of computing resources based on the intent data and the resource allocation objective; and

reallocating implementation of the computing service to the second group of computing resources.

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

determining the second group of computing resources will exceed a budget constraint; and

in response to determining the second group of computing resources will exceed the budget constraint, performing an action with respect to the second group of computing resources.

13. The system of claim 12 , wherein:

performing the action with respect to the second group of computing resources comprises determining a third group of computing resources from the plurality of computing resources; and

the third group of computing resources is different from the second group of computing resources and will not exceed the budget constraint.

14. The system of claim 13 , wherein performing the action with respect to the second group of computing resources comprises providing, for the computing service, access to the third group of computing resources in response to determining that allocation of the computing service to the third group of computing resources will not exceed the budget constraint.

15. The system of claim 12 , wherein performing the action with respect to the second group of computing resources comprises sending, to a client device, data specifying the second group of computing resources and information related to the second group of computing resources.

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

generating a resource allocation problem for allocating computing resources to meet the resource allocation objective; and

solving the resource allocation problem.

17. The system of claim 16 , wherein solving the resource allocation problem comprises:

determining, based on allocation data, that the second group of computing resources will exceed an allocation constraint;

updating the resource allocation problem in response to determining that the second group of computing resources will exceed the allocation constraint; and

determining, using the updated resource allocation problem, a third group of computing resources.

18. The system of claim 16 , wherein the resource allocation problem comprises at least one of a linear programming problem or a mixed integer programming problem.

19. The system of claim 16 , wherein solving the resource allocation problem includes identifying one or more underlying computing services and one or more underlying computing resources that will be used to provide the computing service using a translation function for the computing service.

20. The system of claim 16 , wherein the resource allocation problem comprises a graph.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2023
From: HELSTROOM, DAVID J.; WEIR, PATRICIA; SMITH, CAMERON CODY; HIRSCH, ZACHARY A.; LONGYEAR, ULRIC B.
To: GOOGLE INC.
Reel/Frame 065654/0664 →
CHANGE OF NAME Recorded Nov 20, 2023
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 065654/0916 →
Continuity (5)
Continuation 17444609 · Aug 6, 2021
Continuation 16428251 · May 31, 2019
Continuation 15291722 · Oct 12, 2016
Continuation 14196518 · Mar 4, 2014
Related Publication 20240086240A1 · Mar 14, 2024