IP Library Granted Patent US 11,625,285
Granted Patent B2
US 11,625,285 · App. 16/886,912 · Granted Apr 11, 2023

Assigning workloads in a multi-node processing environment using feedback from each node

Inventors: Eduardo Vera Sousa (Niteroi, BR); Edward José Pacheco Condori (Rio de Janeiro, BR); Tiago Salviano Calmon (Rio de Janeiro, BR); Vinícius Michel Gottin (Rio de Janeiro, BR)
Assignee: EMC IP Holding Company LLC
G06F9/5083G06F9/547
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,625,285
App. No.
16/886,912
Granted
Apr 11, 2023
Kind
B2
Abstract

Techniques are provided for assigning workloads in a multi-node processing environment using resource allocation feedback from each node. One method comprises obtaining feedback from distributed nodes that process workloads, wherein the feedback for a given node indicates (i) an allocation of resources, and (ii) a number of executing workloads. In response to receiving a given workload to be processed, candidate nodes are identified to execute the given workload; and the given workload is assigned to a given candidate node based on an amount of available resources on each candidate node and/or a stability of resource adjustments made for each candidate node. The stability of the resource adjustments made for each candidate node can be evaluated based on a maximum resource adjustment made for a given candidate node relative to a maximum resource adjustment made for each of the candidate nodes.

Claims (40)

1. A method, comprising:

obtaining feedback from a plurality of distributed nodes in a distributed environment that processes a plurality of workloads, wherein each node comprises a controller and one or more processing devices and wherein the feedback for a given node indicates (i) an allocation of resources associated with the given node, and (ii) a number of workloads executing on the given node; and

performing the following steps, in response to receiving a given workload to be processed:

identifying one or more candidate nodes of the plurality of distributed nodes to execute the given workload;

determining a total amount of available resources on each candidate node;

assigning the given workload to a given one of the candidate nodes based at least in part on the determined total amount of available resources on each candidate node and a stability of resource adjustments made for each candidate node, wherein the stability of resource adjustments made for each candidate node comprises an indication of a size of one or more adjustments to the allocation of resources associated with the given node; and

initiating an execution of the given workload on the given one of the candidate nodes.

2. The method of claim 1 , wherein the feedback for the given node is stored in a short-term memory that retains the feedback based at least in part on an average workload lifetime for the given node.

3. The method of claim 1 , wherein the identifying the one or more candidate nodes to execute the given workload evaluates, for each of the plurality of distributed nodes, one or more of (i) a response time, (ii) a throughput of computation, (iii) a total available memory, and (iv) whether a sufficient amount of one or more resources required by the given workload is available.

4. The method of claim 1 , wherein the controller for each node controls an assignment of resources to each workload executing on the respective node to satisfy one or more service level requirements.

5. The method of claim 1 , wherein the assigning the given workload to the given candidate node employs a respective weight for each of the amount of available resources on each candidate node and the stability of the resource adjustments made for each candidate node.

6. The method of claim 5 , wherein the assigning the given workload to the given candidate node selects the candidate node based at least in part on a sum of the weighted amount of available resources and the weighted stability of the resource adjustments.

7. The method of claim 1 , wherein the amount of available resources on each candidate node is evaluated based at least in part on the number of workloads executing on each of the candidate nodes relative to the total number of workloads executing in the distributed environment.

8. The method of claim 1 , wherein the stability of the resource adjustments made for each candidate node is evaluated based at least in part on a maximum resource adjustment made for a given candidate node relative to a maximum resource adjustment made for each of the candidate nodes.

9. The method of claim 1 , wherein the feedback further comprises an execution time for each of the plurality of workloads executing on the given node.

10. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured to implement the following steps:

obtaining feedback from a plurality of distributed nodes in a distributed environment that processes a plurality of workloads, wherein each node comprises a controller and one or more processing devices and wherein the feedback for a given node indicates (i) an allocation of resources associated with the given node, and (ii) a number of workloads executing on the given node; and

performing the following steps, in response to receiving a given workload to be processed:

identifying one or more candidate nodes of the plurality of distributed nodes to execute the given workload;

determining a total amount of available resources on each candidate node;

assigning the given workload to a given one of the candidate nodes based at least in part on the determined total amount of available resources on each candidate node and a stability of resource adjustments made for each candidate node, wherein the stability of resource adjustments made for each candidate node comprises an indication of a size of one or more adjustments to the allocation of resources associated with the given node; and

initiating an execution of the given workload on the given one of the candidate nodes.

11. The apparatus of claim 10 , wherein the feedback for the given node is stored in a short-term memory that retains the feedback based at least in part on an average workload lifetime for the given node.

12. The apparatus of claim 10 , wherein the identifying the one or more candidate nodes to execute the given workload evaluates, for each of the plurality of distributed nodes, one or more of (i) a response time, (ii) a throughput of computation, (iii) a total available memory, and (iv) whether a sufficient amount of one or more resources required by the given workload is available.

13. The apparatus of claim 10 , wherein the assigning the given workload to the given candidate node employs a respective weight for each of the amount of available resources on each candidate node and the stability of the resource adjustments made for each candidate node, and wherein the assigning the given workload to the given candidate node selects the candidate node based at least in part on a sum of the weighted amount of available resources and the weighted stability of the resource adjustments.

14. The apparatus of claim 10 , wherein the stability of the resource adjustments made for each candidate node is evaluated based at least in part on a maximum resource adjustment made for a given candidate node relative to a maximum resource adjustment made for each of the candidate nodes.

15. The apparatus of claim 10 , wherein the feedback further comprises an execution time for each of the plurality of workloads executing on the given node.

16. A non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device to perform the following steps:

obtaining feedback from a plurality of distributed nodes in a distributed environment that processes a plurality of workloads, wherein each node comprises a controller and one or more processing devices and wherein the feedback for a given node indicates (i) an allocation of resources associated with the given node, and (ii) a number of workloads executing on the given node; and

performing the following steps, in response to receiving a given workload to be processed:

identifying one or more candidate nodes of the plurality of distributed nodes to execute the given workload;

determining a total amount of available resources on each candidate node;

assigning the given workload to a given one of the candidate nodes based at least in part on the determined total amount of available resources on each candidate node and a stability of resource adjustments made for each candidate node, wherein the stability of resource adjustments made for each candidate node comprises an indication of a size of one or more adjustments to the allocation of resources associated with the given node; and

initiating an execution of the given workload on the given one of the candidate nodes.

17. The non-transitory processor-readable storage medium of claim 16 , wherein the feedback for the given node is stored in a short-term memory that retains the feedback based at least in part on an average workload lifetime for the given node.

18. The non-transitory processor-readable storage medium of claim 16 , wherein the identifying the one or more candidate nodes to execute the given workload evaluates, for each of the plurality of distributed nodes, one or more of (i) a response time, (ii) a throughput of computation, (iii) a total available memory, and (iv) whether a sufficient amount of one or more resources required by the given workload is available.

19. The non-transitory processor-readable storage medium of claim 16 , wherein the assigning the given workload to the given candidate node employs a respective weight for each of the amount of available resources on each candidate node and the stability of the resource adjustments made for each candidate node, and wherein the assigning the given workload to the given candidate node selects the candidate node based at least in part on a sum of the weighted amount of available resources and the weighted stability of the resource adjustments.

20. The non-transitory processor-readable storage medium of claim 16 , wherein the stability of the resource adjustments made for each candidate node is evaluated based at least in part on a maximum resource adjustment made for a given candidate node relative to a maximum resource adjustment made for each of the candidate nodes.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2020
From: SOUSA, EDUARDO VERA; CONDORI, EDWARD JOSÉ PACHECO; CALMON, TIAGO SALVIANO; GOTTIN, VINÍCIUS MICHEL
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052783/0616 →
Continuity (1)
Related Publication 20210373966A1 · Dec 2, 2021