# US 10,761,901 B2 · Dynamic runtime workload balancing in a distributed computing environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,761,901 B2
- Document ID: US10761901B2
- Status: Granted
- Kind: B2
- Application number: 16/021,124
- Filed: 2018-06-28
- Published: 2020-01-02
- Granted: 2020-09-01
- Earliest claimed: 2018-06-28
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Warren P. Acker; David M. Koster; Jason A. Nikolai; Schuman Shao
- Web page: https://patentgrep.com/patent/US10761901B2

## CPC

- G06F 9/5083: {Techniques for rebalancing the load in a distributed system}
- H04L 67/1008: based on parameters of servers, e.g. available memory or workload (monitoring of computer activity G06F11/30)
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F 2209/5022: Workload threshold
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A computer system dynamically balances a workload of a distributed computing application at runtime. A distributed computing application is monitored at runtime for the occurrence of one or more conditions, wherein the distributed computing application comprises one or more nodes that include one or more processing elements, and wherein each processing element includes one or more operators. One or more adjustments to the distributed computing application are determined. The one or more adjustments to the distributed computing application are performed at runtime. Embodiments of the present invention further include a method and program product for configuring processing elements within a distributed computing system in substantially the same manner described above.

## Claims

### Claim 1

A computer-implemented method of dynamically balancing a workload of a distributed computing application at runtime comprising:
monitoring a distributed computing application at runtime for occurrence of one or more conditions, wherein the distributed computing application comprises one or more nodes that include one or more processing elements, wherein each processing element includes one or more operators, and wherein the one or more conditions include a computing resource utilization of an identified operator exceeding a corresponding computing resource threshold of a first processing element hosting the identified operator;
determining one or more adjustments to the distributed computing application, wherein the one or more adjustments include fusing the identified operator into a second processing element to support the computing resource utilization of the operator; and
performing the one or more adjustments to the distributed computing application at runtime while maintaining execution of the distributed computing application.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the one or more conditions comprise a computing resource utilization of one or more processing elements exceeding a corresponding computing resource threshold of a node, and wherein the one or more adjustments comprise providing a new node to support the computing resource utilization of the one or more processing elements, and migrating the one or more processing elements to the new node.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the one or more conditions comprise a network congestion metric of a first and second operator exceeding a corresponding computing threshold, and wherein the one or more adjustments comprise co-locating the first operator with the second operator.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the one or more conditions comprise a throughput metric of an operator exceeding a corresponding throughput threshold, and wherein the one or more adjustments comprise providing a new operator to the distributed computing application to parallelize computing operations of the operator exceeding the throughput threshold.

### Claim 5

A computer system for dynamically balancing a workload of a distributed computing application at runtime, the computer system comprising:
one or more computer processors;
one or more computer readable storage media;
program instructions stored on the one or more computer readable storage media for execution by at least one of the one or more computer processors, the program instructions comprising instructions to:
monitor a distributed computing application at runtime for occurrence of one or more conditions, wherein the distributed computing application comprises one or more nodes that include one or more processing elements, wherein each processing element includes one or more operators, and wherein the one or more conditions include a computing resource utilization of an identified operator exceeding a corresponding computing resource threshold of a first processing element hosting the identified operator;
determine one or more adjustments to the distributed computing application, wherein the one or more adjustments include fusing the identified operator into a second processing element to support the computing resource utilization of the operator; and
perform the one or more adjustments to the distributed computing application at runtime while maintaining execution of the distributed computing application.

### Claim 6 (depends on 5)

The computer system of claim 5, wherein the one or more conditions comprise a computing resource utilization of one or more processing elements exceeding a corresponding computing resource threshold of a node, and wherein the one or more adjustments comprise providing a new node to support the computing resource utilization of the one or more processing elements, and migrating the one or more processing elements to the new node.

### Claim 7 (depends on 5)

The computer system of claim 5, wherein the one or more conditions comprise a network congestion metric of a first and second operator exceeding a corresponding computing threshold, and wherein the one or more adjustments comprise co-locating the first operator with the second operator.

### Claim 8 (depends on 5)

The computer system of claim 5, wherein the one or more conditions comprise a throughput metric of an operator exceeding a corresponding throughput threshold, and wherein the one or more adjustments comprise providing a new operator to the distributed computing application to parallelize computing operations of the operator exceeding the throughput threshold.

### Claim 9

A computer program product for dynamically balancing a workload of a distributed computing application at runtime, the computer program product comprising one or more computer-readable storage media collectively having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to:
monitor a distributed computing application at runtime for occurrence of one or more conditions, wherein the distributed computing application comprises one or more nodes that include one or more processing elements, wherein each processing element includes one or more operators, and wherein the one or more conditions include a computing resource utilization of an identified operator exceeding a corresponding computing resource threshold of a first processing element hosting the identified operator;
determine one or more adjustments to the distributed computing application, wherein the one or more adjustments include fusing the identified operator into a second processing element to support the computing resource utilization of the operator; and
perform the one or more adjustments to the distributed computing application at runtime while maintaining execution of the distributed computing application.

### Claim 10 (depends on 9)

The computer program product of claim 9, wherein the one or more conditions comprise a computing resource utilization of one or more processing elements exceeding a corresponding computing resource threshold of a node, and wherein the one or more adjustments comprise providing a new node to support the computing resource utilization of the one or more processing elements, and migrating the one or more processing elements to the new node.

### Claim 11 (depends on 9)

The computer program product of claim 9, wherein the one or more conditions comprise a network congestion metric of a first and second operator exceeding a corresponding computing threshold, and wherein the one or more adjustments comprise co-locating the first operator with the second operator.

### Claim 12 (depends on 9)

The computer program product of claim 9, wherein the one or more conditions comprise a throughput metric of an operator exceeding a corresponding throughput threshold, and wherein the one or more adjustments comprise providing a new operator to the distributed computing application to parallelize computing operations of the operator exceeding the throughput threshold.
