IP Library Granted Patent US 11,520,632
Granted Patent B1
US 11,520,632 · App. 16/825,578 · Granted Dec 6, 2022

Specifying behavior among a group of computing tasks

Inventors: John Wilkes (Palo Alto, CA); David Oppenheimer (San Francisco, CA); Walfredo Cirne (Palo Alto, CA); Cosmos Nicolaou (Palo Alto, CA)
Assignee: Google LLC
G06F9/5005G06F9/5038G06F9/5044G06F9/5055H04L67/61G06F2209/506H04L65/80
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,520,632
App. No.
16/825,578
Granted
Dec 6, 2022
Kind
B1
Abstract

A method of specifying behavior among a group of computing tasks included in a request to be performed in a domain of computing resources is disclosed. Method steps include receiving, at a scheduler operably coupled to the domain, a p/f request, the received p/f request including a first group and a first relationship, the first group comprising at least a first p/f group element and a second p/f group element, the first relationship defining a desired behavior of the first and second p/f group elements with respect to each other during performance of the p/f request; determining whether the domain includes available computing resources capable of satisfying the first relationship; and in response to a determination that the domain includes available computing resources capable of satisfying the first relationship, allocating, with the scheduler, at least one available computing resource to fulfill the p/f request.

Claims (30)

1. A method of allocating a set of computing tasks to be performed in a domain of computing resources, the method comprising:

receiving, by a scheduling system having one or more processors, a request to allocate a set of tasks;

identifying a first performance requirement for the set of tasks;

identifying a failure requirement including a failure limit value for the set of tasks, wherein the failure limit value corresponds to a maximum number of task failures;

determining, by the scheduling system, whether the domain includes available computing resources capable of running the set of tasks and satisfying the first performance requirement and the failure requirement for the set of tasks the determining comprising at least one of adding or removing hot spare tasks to manage a probability of meeting the failure limit; and

in response to the determination that the domain includes the available computing resources, allocating, by the scheduling system, at least one available computing resource to fulfill the request.

2. The method of claim 1 , wherein the request does not specify how to meet the first performance requirement.

3. The method of claim 1 , wherein the first performance requirement includes a latency value, wherein the latency value corresponds to a maximum round-trip latency value for any two tasks of the set of tasks.

4. The method of claim 3 , wherein the request is configured such that any two tasks of the set of tasks will be run on different processing machines.

5. The method of claim 1 , wherein the request does not specify failure causes.

6. The method of claim 1 , wherein determining that the domain includes the available computing resources includes packing tasks of the set of tasks to meet the first performance requirement and then spreading the packed tasks to fulfill the failure requirement to one or more selected computing resources.

7. The method of claim 1 , wherein determining that the domain includes the available computing resources includes maximally-spreading tasks of the set of tasks to meet the failure requirements and then selectively clumping the maximally-spread tasks to meet the first performance requirement to one or more selected computing resources.

8. The method of claim 1 , wherein the first performance requirement is a hard constraint and the failure requirement is a soft constraint which the scheduling system attempts to fulfill when determining that the domain includes the available computing resources but is not required to fulfill.

9. The method of claim 1 , further comprising:

in response to the determination that the domain does not include the available computing resources, determining that the first performance requirement is a soft constraint; and

allocating, by the scheduling system, the at least one available computing resource to fulfill the request based on the determination that the first performance requirement is a soft constraint.

10. A system for allocating a set of computing tasks to be performed in a domain of computing resources, the system comprising one or more processors configured to:

receive a request to allocate a set of tasks;

identify a first performance requirement for the set of tasks;

identify a failure requirement including a failure limit value for the set of tasks, wherein the failure limit value corresponds to a maximum number of task failures;

determine whether the domain includes available computing resources capable of running the set of tasks and satisfying the first performance requirement and the failure requirement for the set of tasks, the determining comprising at least one of adding or removing hot spare tasks to manage a probability of meeting the failure limit; and

in response to the determination that the domain includes the available computing resources, allocate at least one available computing resource to fulfill the request.

11. The system of claim 10 , wherein the request does not specify how to meet the first performance requirement.

12. The system of claim 10 , wherein the first performance requirement includes a latency value, wherein the latency value corresponds to a maximum round-trip latency value for any two tasks of the set of tasks.

13. A non-transitory computer-readable medium having embodied thereon instructions which, when executed by one or more processors, cause the one or more processors to perform a method of allocating a set of computing tasks to be performed in a domain of computing resources, the method comprising:

receiving a request to allocate a set of tasks; identifying a first performance requirement for the set of tasks;

identifying a failure requirement including a failure limit value for the set of tasks, wherein the failure limit value corresponds to a maximum number of task failures;

determining whether the domain includes available computing resources capable of running the set of tasks and satisfying the first performance requirement and the failure requirement for the set of tasks, the determining comprising at least one of adding or removing hot spare tasks to manage a probability of meeting the failure limit; and

in response to the determination that the domain includes the available computing resources at least one available computing resource to fulfill the request.

14. The non-transitory computer-readable medium of claim 13 , wherein the request does not specify how to meet the first performance requirement.

Assignments (2)
CHANGE OF NAME Recorded Mar 24, 2020
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 052210/0906 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2020
From: WILKES, JOHN; OPPENHEIMER, DAVID; CIRNE, WALFREDO; NICOLAOU, COSMOS
To: GOOGLE INC.
Reel/Frame 052195/0647 →
Continuity (3)
Continuation 16238200 · Jan 2, 2019
Continuation 15670777 · Aug 7, 2017
Continuation 14252415 · Apr 14, 2014