IP Library Granted Patent US 11,797,355
Granted Patent B2
US 11,797,355 · App. 17/862,030 · Granted Oct 24, 2023

Resolving cluster computing task interference

Inventors: Tobias Günter Knaup (San Francisco, CA); Christopher John Barkley Gutierrez (San Mateo, CA)
Assignee: D2iQ, Inc.
G06F9/5088G06F2209/505G06F2209/508
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,797,355
App. No.
17/862,030
Filed
Jul 11, 2022
Granted
Oct 24, 2023
Kind
B2
Examiner
KIM, DONG U
Art Unit
2196
USPC
718/104
Abstract

A system for resolving interference on a cluster computing system includes a processor. The processor is configured to determine whether a second worker system has resources available to run the first or second task; in response to determining that the second worker system has the resources available to run the second task, move the second task from the first to the second worker system; in response to determining that the second worker system has the resources available to run the first task and does not have resources available to run the second task, move the first task from the first to the second worker system; and in response to determining that the second worker system does not have the resources available to run the first or second task, limit a resource allocation of the first or second task.

Claims (48)

1. A system for resolving interference on a cluster computing system, comprising:

an input interface configured to:

receive an indication of a task interference on a first worker system of a plurality of worker systems, wherein the task interference comprises a reduction in performance of a first task when a second task is running concurrently on the first worker system; and

a processor configured to:

determine whether a second worker system of the plurality of worker systems has resources available to run the first task or the second task based on a first priority associated with the first task and a second priority associated with the second task;

in response to determining that the second worker system has the resources available to run the second task:

move the second task from the first worker system to the second worker system;

in response to determining that the second worker system has the resources in response to determining that the second worker system has the resources available to run the second task:

move the first task from the first worker system to the second worker system;

in response to determining that the second worker system does not have the resources available to run the first task or the second task:

limit a resource allocation of the first task or the second task; and

move all tasks of a task group, wherein the task group comprises a subset of a set of tasks comprising multiple instances of the same task.

2. The system of claim 1 , wherein the indication of task interference comprises an indication of a sudden reduction in a resource performance.

3. The system of claim 1 , wherein the task interference comprises an indication of a sudden reduction in performance of one or more key tasks.

4. The system of claim 1 , wherein an indication of a task interference comprises an indication that a combined resource utilization of a first task and a second task both running on the first worker system is greater than a resource capacity of the first worker system.

5. The system of claim 1 , wherein limiting the resource allocation of the first task or the second task comprises limiting the resource allocation of the first task and/or the second task.

6. The system of claim 1 , wherein a task resource allocation is unlimited by default.

7. The system of claim 1 , wherein a resource of the resources comprises a network bandwidth, a disk bandwidth, a memory bandwidth, or a processor cache.

8. The system of claim 1 , wherein the second worker system comprises a most loaded worker system of the plurality of worker systems that has the resources available to run the second task.

9. The system of claim 1 , wherein the second worker system comprises a most loaded worker system of the plurality of worker systems that has the resources available to run the first task.

10. The system of claim 1 , wherein determining that the second worker system does not have the resources available to run the first task or the second task comprises determining that no worker system of the plurality of worker systems has resources available to run the first task or the second task.

11. The system of claim 1 , wherein the processor is additionally configured to add the indication of task interference to a task interference database.

12. The system of claim 11 , wherein the task interference database comprises information describing a plurality of task interference events.

13. The system of claim 12 , wherein the task interference database is used by the computing cluster for allocating tasks to worker systems of the plurality of worker systems with reduced interference.

14. The system of claim 1 , wherein the processor is further configured to receive an indication of a performance target for the first task.

15. The system of claim 14 , wherein limiting a resource is based at least in part on the performance target.

16. The system of claim 15 , wherein the processor is further configured to, in the event a limit is below a requirement for the performance target, allocate a new cluster machine for the first task.

17. A method for resolving interference on a cluster computing system, comprising:

receiving an indication of a task interference on a first worker system of a plurality of worker systems, wherein the task interference comprises a reduction in performance of a first task when a second task is running concurrently on the first worker system;

determining, using a processor, whether a second worker system of the plurality of worker systems has resources available to run the first task or the second task based on a first priority associated with the first task and a second priority associated with the second task;

in response to determining that the second worker system has the resources available to run the second task:

moving the second task from the first worker system to the second worker system;

in response to determining that the second worker system has the resources available to run the first task and does not have resources available to run the second task:

moving the first task from the first worker system to the second worker system;

in response to determining that the second worker system does not have the resources available to run the first task or the second task:

limiting a resource allocation of the first task or the second task; and

moving all tasks of a task group, wherein the task group comprises a subset of a set of tasks comprising multiple instances of the same task.

18. A computer program product for resolving interference on a cluster computing system, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving an indication of a task interference on a cluster machine of a plurality of cluster machines comprising a computer cluster running a set of tasks;

receiving an indication of a task interference on a first worker system of a plurality of worker systems, wherein the task interference comprises a reduction in performance of a first task when a second task is running concurrently on the first worker system;

determining whether a second worker system of the plurality of worker systems has resources available to run the first task or the second task based on a first priority associated with the first task and a second priority associated with the second task;

in response to determining that the second worker system has the resources available to run the second task:

moving the second task from the first worker system to the second worker system;

in response to determining that the second worker system has the resources available to run the second task:

moving the first task from the first worker system to the second worker system;

in response to determining that the second worker system does not have the resources available to run the first task or the second task:

limiting a resource allocation of the first task or the second task; and

moving all tasks of a task group, wherein the task group comprises a subset of a set of tasks comprising multiple instances of the same task.

Assignments (4)
SECURITY INTEREST Recorded Feb 13, 2025
From: NUTANIX, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070206/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2023
From: D2IQ, INC.
To: D2IQ (ASSIGNMENT FOR THE BENEFIT OF CREDITORS), LLC
Reel/Frame 065909/0748 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF THE ASSIGNOR. PREVIOUSLY RECORDED ON REEL 065771 FRAME 0424. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 8, 2023
From: D2IQ (ASSIGNMENT FOR THE BENEFIT OF CREDITORS), LLC.
To: NUTANIX, INC.
Reel/Frame 065836/0558 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2023
From: D2IQ, INC.
To: NUTANIX, INC.
Reel/Frame 065771/0424 →
Continuity (3)
Continuation 16936069 · Jul 22, 2020
Continuation 15903912 · Feb 23, 2018
Related Publication 20220391262A1 · Dec 8, 2022