# US 11,030,035 B2 · Preventing cascade failures in computer systems

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

- Number: US 11,030,035 B2
- Document ID: US11030035B2
- Status: Granted
- Kind: B2
- Application number: 16/383,024
- Filed: 2019-04-12
- Published: 2019-08-01
- Granted: 2021-06-08
- Earliest claimed: 2012-05-21
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Robert R. Friedlander; James R. Kraemer; Justyna M. Nowak; Elizabeth V. Woodward
- Web page: https://patentgrep.com/patent/US11030035B2

## CPC

- G06F 11/079: {Root cause analysis, i.e. error or fault diagnosis (in a hardware test environment G06F11/22; in a software test environment G06F11/36)}
- G06F 11/0706: {the processing taking place on a specific hardware platform or in a specific software environment}
- G06F 11/0721: {within a central processing unit [CPU]}
- G06F 11/0751: {Error or fault detection not based on redundancy (power supply failures G06F1/30; network fault management H04L41/06)}
- G06F 11/0793: {Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method prevents a cascading failure in a complex stream computer system. The method includes receiving binary data that identifies multiple subcomponents in a complex stream computer system. These identified multiple subcomponents include upstream subcomponents that generate multiple outputs and a downstream subcomponent that executes a downstream computational process that uses the multiple outputs. The method dynamically adjusts which of multiple inputs are used by the downstream subcomponent in an attempt to generate an output from the downstream subcomponent that meets a predefined trustworthiness level for making a first type of prediction. If no variations of execution of one or more functions used by the downstream subcomponent ever produce an output that meets the predefined trustworthiness level for making a first type of prediction, then computer hardware executes a new downstream computational process that produces a different second type of prediction.

## Claims

### Claim 1

A method comprising:
receiving binary data that identifies multiple subcomponents in a complex stream computer system, wherein identified multiple subcomponents comprise multiple upstream subcomponents that generate multiple outputs and a downstream subcomponent that executes a downstream computational process that uses the multiple outputs, and wherein the multiple upstream subcomponents execute upstream computational processes;
determining accuracy values by assigning a determined accuracy value to each of the multiple outputs from the multiple upstream subcomponents, wherein determined accuracy values describe a confidence level of an accuracy of each of the multiple outputs;
determining weighting values by assigning a weighting value to each of multiple inputs to the downstream subcomponent, wherein determined weighting values describes a criticality level of each of the multiple inputs when executing the downstream computational process in the downstream subcomponent;
utilizing the determined accuracy values and the determined weighting values to dynamically adjust which of the multiple inputs are used by the downstream subcomponent in order to generate an output from the downstream subcomponent that meets a predefined trustworthiness level for making a first type of prediction;
determining that no variations of execution of one or more functions used by the downstream subcomponent ever produce an output that meets the predefined trustworthiness level for making the first type of prediction; and
in response to determining that no variations of execution of the one or more functions used by the downstream subcomponent ever produce the output that meets the predefined trustworthiness level for making the first type of prediction, executing, by computer hardware, a new downstream computational process that produces a different second type of prediction than that produced by the downstream subcomponent.

### Claim 2 (depends on 1)

The method of claim 1, wherein executing the new downstream computational process prevents the complex stream computer system from outputting an untrustworthy output that fails to meet the predefined trustworthiness level, and wherein executing the new downstream computational process produces a trustworthy output that meets the predefined trustworthiness level.

### Claim 3 (depends on 1)

The method of claim 1, wherein the identified multiple subcomponents of the complex stream computer system are hardware subcomponents.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
in response to an output from the downstream subcomponent failing to meet the predefined trustworthiness level, replacing the downstream computational process in the downstream subcomponent with an alternate downstream computational process; and
reutilizing, by the downstream subcomponent, the determined accuracy values and the determined weighting values to dynamically adjust inputs to the alternate downstream computational process until execution of the alternate downstream computational process results in an output that meets the predefined trustworthiness level.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
determining that one of the multiple outputs is a failing output that fails to meet the determined accuracy values;
determining that executing an alternate downstream computational process without the failing output results in an output from the downstream subcomponent meeting the predefined trustworthiness level; and
executing, by the downstream subcomponent, the alternate downstream computational process without the failing output.

### Claim 6 (depends on 1)

The method of claim 1, wherein the identified multiple subcomponents of the complex stream computer system are software subcomponents.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
receiving, by the downstream subcomponent, a weather prediction as a first input, wherein the first input is generated by a first upstream subcomponent from the multiple upstream subcomponents;
receiving, by the downstream subcomponent, an interest rate prediction as a second input, wherein the second input is generated by a second upstream subcomponent from the multiple upstream subcomponents;
receiving, by the downstream subcomponent, a crop demand prediction as a third input, wherein the third input is generated by a third upstream subcomponent from the multiple upstream subcomponents; and
generating, by the downstream subcomponent, a crop profitability prediction for a crop based on the weather prediction, the interest rate prediction, and the crop demand prediction, wherein the crop profitability prediction meets the predefined trustworthiness level.

### Claim 8

A computer program product for preventing a cascading failure in a complex stream computer system, wherein the computer program product comprises a non-transitory computer readable storage device having program instructions embodied therewith, the program instructions readable and executable by a computer to perform a method comprising:
receiving binary data that identifies multiple subcomponents in a complex stream computer system, wherein identified multiple subcomponents comprise multiple upstream subcomponents that generate multiple outputs and a downstream subcomponent that executes a downstream computational process that uses the multiple outputs, and wherein the multiple upstream subcomponents execute upstream computational processes;
determining accuracy values by assigning a determined accuracy value to each of the multiple outputs from the multiple upstream subcomponents, wherein determined accuracy values describe a confidence level of an accuracy of each of the multiple outputs;
determining weighting values by assigning a weighting value to each of multiple inputs to the downstream subcomponent, wherein determined weighting values describes a criticality level of each of the multiple inputs when executing the downstream computational process in the downstream subcomponent;
utilizing the determined accuracy values and the determined weighting values to dynamically adjust which of the multiple inputs are used by the downstream subcomponent in order to generate an output from the downstream subcomponent that meets a predefined trustworthiness level for making a first type of prediction;
determining that no variations of execution of one or more functions used by the downstream subcomponent ever produce an output that meets the predefined trustworthiness level for making the first type of prediction; and
in response to determining that no variations of execution of the one or more functions used by the downstream subcomponent ever produce the output that meets the predefined trustworthiness level for making the first type of prediction, executing, by computer hardware, a new downstream computational process that produces a different second type of prediction than that produced by the downstream subcomponent.

### Claim 9 (depends on 8)

The computer program product of claim 8, wherein executing the new downstream computational process prevents the complex stream computer system from outputting an untrustworthy output that fails to meet the predefined trustworthiness level, and wherein executing the new downstream computational process produces a trustworthy output that meets the predefined trustworthiness level.

### Claim 10 (depends on 8)

The computer program product of claim 8, wherein the identified multiple subcomponents of the complex stream computer system are hardware subcomponents.

### Claim 11 (depends on 8)

The computer program product of claim 8, wherein the method further comprises:
in response to an output from the downstream subcomponent failing to meet the predefined trustworthiness level, replacing the downstream computational process in the downstream subcomponent with an alternate downstream computational process; and
reutilizing, by the downstream subcomponent, the determined accuracy values and the determined weighting values to dynamically adjust inputs to the alternate downstream computational process until execution of the alternate downstream computational process results in an output that meets the predefined trustworthiness level.

### Claim 12 (depends on 8)

The computer program product of claim 8, wherein the method further comprises:
determining that one of the multiple outputs is a failing output that fails to meet the determined accuracy values;
determining that executing an alternate downstream computational process without the failing output results in an output from the downstream subcomponent meeting the predefined trustworthiness level; and
executing, by the downstream subcomponent, the alternate downstream computational process without the failing output.

### Claim 13 (depends on 8)

The computer program product of claim 8, wherein the identified multiple subcomponents of the complex stream computer system are software subcomponents.

### Claim 14 (depends on 8)

The computer program product of claim 8, wherein the method further comprises:
receiving, by the downstream subcomponent, a weather prediction as a first input, wherein the first input is generated by a first upstream subcomponent from the multiple upstream subcomponents;
receiving, by the downstream subcomponent, an interest rate prediction as a second input, wherein the second input is generated by a second upstream subcomponent from the multiple upstream subcomponents;
receiving, by the downstream subcomponent, a crop demand prediction as a third input, wherein the third input is generated by a third upstream subcomponent from the multiple upstream subcomponents; and
generating, by the downstream subcomponent, a crop profitability prediction for a crop based on the weather prediction, the interest rate prediction, and the crop demand prediction, wherein the crop profitability prediction meets the predefined trustworthiness level.

### Claim 15

A computer system comprising one or more processors, one or more computer readable memories, and one or more computer readable storage mediums, and program instructions stored on at least one of the one or more computer readable storage mediums for execution by at least one of the one or more processors via at least one of the one or more computer readable memories to perform a method comprising:
receiving binary data that identifies multiple subcomponents in a complex stream computer system, wherein identified multiple subcomponents comprise multiple upstream subcomponents that generate multiple outputs and a downstream subcomponent that executes a downstream computational process that uses the multiple outputs, and wherein the multiple upstream subcomponents execute upstream computational processes;
determining accuracy values by assigning a determined accuracy value to each of the multiple outputs from the multiple upstream subcomponents, wherein determined accuracy values describe a confidence level of an accuracy of each of the multiple outputs;
determining weighting values by assigning a weighting value to each of multiple inputs to the downstream subcomponent, wherein determined weighting values describes a criticality level of each of the multiple inputs when executing the downstream computational process in the downstream subcomponent;
utilizing the determined accuracy values and the determined weighting values to dynamically adjust which of the multiple inputs are used by the downstream subcomponent in order to generate an output from the downstream subcomponent that meets a predefined trustworthiness level for making a first type of prediction;
determining that no variations of execution of one or more functions used by the downstream subcomponent ever produce an output that meets the predefined trustworthiness level for making the first type of prediction; and
in response to determining that no variations of execution of the one or more functions used by the downstream subcomponent ever produce the output that meets the predefined trustworthiness level for making the first type of prediction, executing, by computer hardware, a new downstream computational process that produces a different second type of prediction than that produced by the downstream subcomponent.

### Claim 16 (depends on 15)

The computer system of claim 15, wherein executing the new downstream computational process prevents the complex stream computer system from outputting an untrustworthy output that fails to meet the predefined trustworthiness level, and wherein executing the new downstream computational process produces a trustworthy output that meets the predefined trustworthiness level.

### Claim 17 (depends on 15)

The computer system of claim 15, wherein the identified multiple subcomponents of the complex stream computer system are hardware subcomponents.

### Claim 18 (depends on 15)

The computer system of claim 15, wherein the method further comprises:
in response to an output from the downstream subcomponent failing to meet the predefined trustworthiness level, replacing the downstream computational process in the downstream subcomponent with an alternate downstream computational process; and
reutilizing, by the downstream subcomponent, the determined accuracy values and the determined weighting values to dynamically adjust inputs to the alternate downstream computational process until execution of the alternate downstream computational process results in an output that meets the predefined trustworthiness level.

### Claim 19 (depends on 15)

The computer system of claim 15, wherein the method further comprises:
determining that one of the multiple outputs is a failing output that fails to meet the determined accuracy values;
determining that executing an alternate downstream computational process without the failing output results in an output from the downstream subcomponent meeting the predefined trustworthiness level; and
executing, by the downstream subcomponent, the alternate downstream computational process without the failing output.

### Claim 20 (depends on 15)

The computer system of claim 15, wherein the determined multiple subcomponents of the complex stream computer system are software subcomponents.
