Dynamic reduction of stream backpressure
First Claim
1. A method of processing data in a stream application, comprising:
- receiving streaming data to be processed by a plurality of processing elements, the processing elements processing at least a portion of the received data by operation of one or more computer processors, wherein each of the processing elements comprises an executable portion of code;
establishing an operator graph of the plurality of processing elements, the operator graph defining at least one execution path through which the streaming data flows through the plurality of processing elements, and wherein each processing element in the execution path is configured to at least one of receive data from at least one upstream processing element and transmit data to at least one downstream processing element;
receiving a request to add at least one processing element to the execution path of the operator graph;
in response to receiving the request and before adding the at least one processing element, identifying a predicted relative change of data throughput in a first processing element in the execution path, wherein the predicted relative change of data is based on predicting a utilization rate of computer processors in two or more processing elements resulting from adding the at least one processing element to the operator graph and determining whether adding the at least one processing element will result in backpressure based on analyzing historical information;
upon determining that the predicted relative change of data throughput satisfies a predetermined threshold, determining not to add the at least one processing element to the operator graph; and
after determining not to add the at least one processing element to the operator graph, processing the streaming data using the plurality of processing elements.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are described for eliminating backpressure in a distributed system by changing the rate data flows through a processing element. Backpressure occurs when data throughput in a processing element begins to decrease, for example, if new processing elements are added to the operating chart or if the distributed system is required to process more data. Indicators of backpressure (current or future) may be monitored. Once current backpressure or potential backpressure is identified, the operator graph or data rates may be altered to alleviate the backpressure. For example, a processing element may reduce the data rates it sends to processing elements that are downstream in the operator graph, or processing elements and/or data paths may be eliminated. In one embodiment, processing elements and associate data paths may be prioritized so that more important execution paths are maintained.
88 Citations
20 Claims
-
1. A method of processing data in a stream application, comprising:
-
receiving streaming data to be processed by a plurality of processing elements, the processing elements processing at least a portion of the received data by operation of one or more computer processors, wherein each of the processing elements comprises an executable portion of code; establishing an operator graph of the plurality of processing elements, the operator graph defining at least one execution path through which the streaming data flows through the plurality of processing elements, and wherein each processing element in the execution path is configured to at least one of receive data from at least one upstream processing element and transmit data to at least one downstream processing element; receiving a request to add at least one processing element to the execution path of the operator graph; in response to receiving the request and before adding the at least one processing element, identifying a predicted relative change of data throughput in a first processing element in the execution path, wherein the predicted relative change of data is based on predicting a utilization rate of computer processors in two or more processing elements resulting from adding the at least one processing element to the operator graph and determining whether adding the at least one processing element will result in backpressure based on analyzing historical information; upon determining that the predicted relative change of data throughput satisfies a predetermined threshold, determining not to add the at least one processing element to the operator graph; and after determining not to add the at least one processing element to the operator graph, processing the streaming data using the plurality of processing elements. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for processing data, comprising:
-
a computer processor; and a memory containing a program that, when executed on the computer processor, performs an operation for processing data, comprising; receiving streaming data to be processed by a plurality of processing elements, wherein each of the processing elements comprises an executable portion of code; establishing an operator graph of the plurality of processing elements, the operator graph defining at least one execution path through which the streaming data flows through the plurality of processing elements, and wherein each processing element in the execution path is configured to at least one of receive data from at least one upstream processing element and transmit data to at least one downstream processing element; receiving a request to add at least one processing element to the execution path of the operator graph; in response to receiving the request and before adding the at least one processing element, identifying a predicted relative change of data throughput in a first processing element in the execution path, wherein the predicted relative change of data is based on predicting a utilization rate of computer processors in two or more processing elements resulting from adding the at least one processing element and determining whether adding the at least one processing element will result in backpressure based on analyzing historical information; upon determining that the predicted relative change of data throughput satisfies a predetermined threshold, determining not to add the at least one processing element to the operator graph; and after determining not to add the at least one processing element to the operator graph, processing the streaming data using the plurality of processing elements. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A computer program product for processing data, the computer program product comprising:
a non-transitory computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code, when executed on one or more computer processors, is configured to; receive streaming data to be processed by a plurality of processing elements, the processing elements processing at least a portion of the received data by operation of the one or more computer processors, wherein each of the processing elements comprises an executable portion of code; establish an operator graph of the plurality of processing elements, the operator graph defining at least one execution path through which the streaming data flows through the plurality of processing elements, and wherein each processing element in the execution path is configured to at least one of receive data from at least one upstream processing element and transmit data to at least one downstream processing element; receive a request to add at least one processing element to the execution path of the operator graph; in response to receiving the request and before adding the at least one processing element, identify a predicted relative change of data throughput in a first processing element in the execution path, wherein the predicted relative change of data is based on predicting a utilization rate of computer processors in two or more processing elements resulting from adding the at least one processing element and determining whether adding the at least one processing element will result in backpressure based on analyzing historical information; upon determining that the predicted relative change of data throughput satisfies a predetermined threshold, determine not to add the at least one processing element to the operator graph; and after determining not to add the at least one processing element to the operator graph, processing the streaming data using the plurality of processing elements. - View Dependent Claims (16, 17, 18, 19, 20)
-
15. The computer program product of 14, wherein the utilization rate is associated with the first processing element.
Specification