Patent ID: 8601477

Claim:
A computer-implemented method to reduce instability within a heterogeneous stream processing application including native processing elements and non-native processing elements, comprising: generating a plurality of job plans to process a data stream received by the heterogeneous stream processing application, each job plan comprising a directed graph connecting processing elements of a set of nodes, wherein the data stream is passed between nodes via a plurality of node interfaces according to the directed graph, wherein the native processing elements are composed according to a native programming model, wherein the non-native processing elements are composed according to a non-native programming model and are configured to communicate with the native programming model of the native processing elements by virtue of an adapter class; determining, for each node interface of each job plan, a stability measure representing a probability that the respective node interface will not cause errors, wherein the stability measure is based at least in part on each of: (i) whether the node interface is an interface from a native processing element to a non-native processing element; (ii) whether the node interface is an interface from a non-native processing element to a native processing element; (iii) whether the node interface is an interface between two native processing elements; and (iv) whether the node interface is an interface between two non-native processing elements; determining an overall stability measure for each job plan, based on the stability measure determined for each node interface of the respective job plan; selecting, based on the determined overall stability measure, a job plan from the plurality of job plans in order to reduce instability within the heterogeneous stream processing application, wherein selecting the job plan comprises determining, based on predefined priorities, the relative importance of each of: (i) the determined overall stability measures of each job plan, (ii) cost characteristics of each job plan, and (iii) performance characteristics of each job plan; and processing the data stream according to the selected job plan.