DYNAMIC REDUCTION OF STREAM BACKPRESSURE
First Claim
1. A method of processing data, 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;
establishing an operator graph of the plurality of processing elements, the operator graph defining at least one execution path, wherein each processing element of the operator graph is configured to receive data from at least one upstream processing element and transmit data to at least one downstream processing element;
identifying a relative change of data throughput in a first processing element of the plurality of processing elements, wherein the data throughput measures whether the first processing element is processing data as fast as the first processing element is receiving data from the at least one upstream processing element; and
upon identifying the relative change of data throughput, changing the rate of data flowing in at least one of the first processing element and a second processing element of the plurality of processing elements to increase the data throughput of the first processing element.
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.
66 Citations
10 Claims
-
1. A method of processing data, 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; establishing an operator graph of the plurality of processing elements, the operator graph defining at least one execution path, wherein each processing element of the operator graph is configured to receive data from at least one upstream processing element and transmit data to at least one downstream processing element; identifying a relative change of data throughput in a first processing element of the plurality of processing elements, wherein the data throughput measures whether the first processing element is processing data as fast as the first processing element is receiving data from the at least one upstream processing element; and upon identifying the relative change of data throughput, changing the rate of data flowing in at least one of the first processing element and a second processing element of the plurality of processing elements to increase the data throughput of the first processing element. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. 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; establishing an operator graph of the plurality of processing elements, the operator graph defining at least one execution path and wherein each processing element of the operator graph is configured to 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 operator graph; identifying a relative change of data throughput in a first processing element of the plurality of processing elements, wherein the relative decrease is based on a predictive measurement of future data throughput in the first processing element; and upon identifying the relative change of data throughput, refusing the request to add the at least one processing element to the operator graph.
-
Specification