Speculative execution in a real-time data environment
First Claim
Patent Images
1. A computer-implemented method for processing a data stream, comprising:
- executing, by operation of one or more computer processors, a first operation on a first tuple of the data stream by a first processing element to produce a first result tuple;
upon determining that a likelihood that a second operation will be valid if executed on the first tuple in parallel with the first operation exceeds a predetermined threshold value, executing the second operation on the first tuple of the data stream by a second processing element, wherein the second operation is executed in parallel with the first operation;
determining one or more attributes of the first tuple used in executing the second operation on the second processing element; and
comparing the determined one or more attributes of the first tuple with attributes of the first result tuple produced from executing the first operation by the first processing element, to determine whether the second operation executed by the second processing element is valid.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are described for speculatively executing operations on data in a data stream in parallel in a manner that increases the efficiency of the stream-based application. In addition to executing operations in parallel, embodiments of the invention may determine whether certain results produced by the parallel operations are valid results and discard any results determined to be invalid.
13 Citations
11 Claims
-
1. A computer-implemented method for processing a data stream, comprising:
-
executing, by operation of one or more computer processors, a first operation on a first tuple of the data stream by a first processing element to produce a first result tuple; upon determining that a likelihood that a second operation will be valid if executed on the first tuple in parallel with the first operation exceeds a predetermined threshold value, executing the second operation on the first tuple of the data stream by a second processing element, wherein the second operation is executed in parallel with the first operation; determining one or more attributes of the first tuple used in executing the second operation on the second processing element; and comparing the determined one or more attributes of the first tuple with attributes of the first result tuple produced from executing the first operation by the first processing element, to determine whether the second operation executed by the second processing element is valid. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer-implemented method of processing a data stream, comprising:
-
executing a first operation on a first tuple of the data stream by a first processing element; calculating a utility value for executing a second operation on the first tuple of the data stream by a second processing element in parallel to executing the first operation by the first processing element, wherein the utility value is based on (i) a likelihood that the second operation will be valid if executed on the first tuple in parallel with the first operation and (ii) a time savings value for executing the second operation in parallel with the first operation; upon determining the calculated utility value exceeds a threshold utility value, executing the second operation on the first tuple of the data stream by the second processing element, wherein the second operation is executed in parallel with the first operation; and determining whether a result of the second operation is valid, based on whether the first operation modified the first tuple. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computer-implemented method for processing a data stream, comprising:
-
executing, by operation of one or more computer processors, a first operation on a first tuple of the data stream by a first processing element to produce a first result tuple; executing a second operation on the first tuple of the data stream by a second processing element, wherein the second operation is executed in parallel with the first operation; determining one or more attributes of the first tuple used in executing the second operation on the second processing element; and comparing the determined one or more attributes of the first tuple with attributes of the first result tuple produced from executing the first operation by the first processing element, to determine whether the second operation executed by the second processing element is valid, based on at least one of (i) whether the first result tuple contains fewer attributes than the first tuple of the data stream, (ii) whether the first result tuple contains more attributes than the first tuple of the data stream, and (iii) which attributes in the first tuple of the data stream are modified by the first operation.
-
Specification