Learning-based resource management in a data center cloud architecture
US-2018255122-A1 · Sep 6, 2018 · US
US11625285B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11625285-B2 |
| Application number | US-202016886912-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 29, 2020 |
| Priority date | May 29, 2020 |
| Publication date | Apr 11, 2023 |
| Grant date | Apr 11, 2023 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
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.
Opening claim text (preview).
What is claimed is: 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.
Remote procedure calls [RPC]; Web services · CPC title
Techniques for rebalancing the load in a distributed system · CPC title
the resource being a machine, e.g. CPUs, Servers, Terminals · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.