Using predictive determinism within a streaming environment
First Claim
1. A computer-implemented method for 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 streaming 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 at least one of the processing elements 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;
determining that an output of a first processing element of the plurality of processing elements is predictable based on at least one previously transmitted output value;
receiving a current input value at a second processing element of the plurality of processing elements, wherein the second processing element is unable to meet one or more throughput requirements for the streaming data by processing the received current input value; and
in response to receiving the current input value, and instead of processing the received current input value, transmitting a predicted output value from the second processing element, wherein the predicted output value is based on previously computed output values generated by the second processing element.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are described for transmitting predicted output data on a processing element in a stream computing application instead of processing currently received input data. The stream computing application monitors the output of a processing element and determines whether its output is predictable, for example, if the previously transmitted output values are within a predefined range or if one or more input values correlate with the same one or more output values. The application may then generate a predicted output value to transmit from the processing element instead of transmitting a processed output value based on current input values. The predicted output value may be, for example, an average of the previously transmitted output values or a previously transmitted output value that was transmitted in response to a previously received input value that is similar to a currently received input value.
65 Citations
18 Claims
-
1. A computer-implemented method for 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 streaming 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 at least one of the processing elements 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; determining that an output of a first processing element of the plurality of processing elements is predictable based on at least one previously transmitted output value; receiving a current input value at a second processing element of the plurality of processing elements, wherein the second processing element is unable to meet one or more throughput requirements for the streaming data by processing the received current input value; and in response to receiving the current input value, and instead of processing the received current input value, transmitting a predicted output value from the second processing element, wherein the predicted output value is based on previously computed output values generated by the second processing element. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer-implemented method for 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 and wherein at least one of the processing elements 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; determining whether an output of a first processing element of the plurality of processing elements is predictable based on at least one previously transmitted output value being within a first predefined range of at least one corresponding previously received input value; receiving a current input value at a second processing element of the plurality of processing elements; determining if the current input value is within a second predefined range of one of the at least one corresponding previously received input value; and in response to determining that the output of the first processing element is predictable and the current input value is within the second predefined range, transmitting the current input value as the output from the second processing element.
-
-
13. A computer-implemented method for 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 streaming 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 at least one of the processing elements 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; determining that an output of a first processing element of the plurality of processing elements is predictable based on at least one previously transmitted output value; receiving a current input value at a second processing element of the plurality of processing elements, wherein the first and second processing elements are distinct processing elements; and in response to receiving the current input value, and instead of processing the received current input value, transmitting a predicted output value from the second processing element, wherein the predicted output value is based on previously computed output values generated by the second processing element. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification