Injecting a fault into a stream operator in a data stream processing application
First Claim
1. A method for injecting a fault into a stream operator in a data stream processing application, the method comprising:
- developing a fault injection operator having specialized logic to emulate an effect of a failure, the fault injection operator corresponding to a fault model, wherein the fault injection operator is a bursty tuple loss fault injection operator;
embedding the fault injection operator into a data flow graph for the data stream processing application, so as to emulate at least one possible effect of the fault model on the data stream processing application, wherein the embedding comprises;
embedding the fault injection operator immediately after each source operator in the data flow graph;
embedding the fault injection operator immediately before each operator in the data flow graph that contains an upstream operator that produces more than one output stream;
embedding the fault injection operator immediately before each operator in the data flow graph that consumes more than one input stream; and
embedding the fault injection operator immediately before each operator in the data flow graph that has a stateful upstream operator;
wherein the fault injection operator is embedded only in one or more positions of the data flow graph at which the fault model manifests, andwherein the fault injection operator emulates a different failure when embedded at each of the one or more positions in the data flow graph.
1 Assignment
0 Petitions
Accused Products
Abstract
In one embodiment, the invention comprises partial fault tolerant stream processing applications. One embodiment of a method for implementing partial fault tolerance in a stream processing application comprising a plurality of stream operators includes: defining a quality score function that expresses how well the application is performing quantitatively, injecting a fault into at least one of the plurality of operators, assessing an impact of the fault on the quality score function, and selecting at least one partial fault-tolerant technique for implementation in the application based on the quantitative metric-driven assessment.
-
Citations
25 Claims
-
1. A method for injecting a fault into a stream operator in a data stream processing application, the method comprising:
-
developing a fault injection operator having specialized logic to emulate an effect of a failure, the fault injection operator corresponding to a fault model, wherein the fault injection operator is a bursty tuple loss fault injection operator; embedding the fault injection operator into a data flow graph for the data stream processing application, so as to emulate at least one possible effect of the fault model on the data stream processing application, wherein the embedding comprises; embedding the fault injection operator immediately after each source operator in the data flow graph; embedding the fault injection operator immediately before each operator in the data flow graph that contains an upstream operator that produces more than one output stream; embedding the fault injection operator immediately before each operator in the data flow graph that consumes more than one input stream; and embedding the fault injection operator immediately before each operator in the data flow graph that has a stateful upstream operator; wherein the fault injection operator is embedded only in one or more positions of the data flow graph at which the fault model manifests, and wherein the fault injection operator emulates a different failure when embedded at each of the one or more positions in the data flow graph. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. An article of manufacture, comprising:
-
a non-transitory computer readable storage medium containing an executable program for injecting a fault into a stream operator in a data stream processing application, where the program performs steps comprising; developing a fault injection operator having specialized logic to emulate an effect of a failure, the fault injection operator corresponding to a fault model, wherein the fault injection operator is a bursty tuple loss fault injection operator; embedding the fault injection operator into a data flow graph for the data stream processing application, so as to emulate at least one possible effect of the fault model on the data stream processing application, wherein the embedding comprises; embedding the fault injection operator immediately after each source operator in the data flow graph; embedding the fault injection operator immediately before each operator in the data flow graph that contains an upstream operator that produces more than one output stream; embedding the fault injection operator immediately before each operator in the data flow graph that consumes more than one input stream; and embedding the fault injection operator immediately before each operator in the data flow graph that has a stateful upstream operator; wherein the fault injection operator is embedded only in one or more positions of the data flow graph at which the fault model manifests, and wherein the fault injection operator emulates a different failure when embedded at each of the one or more positions in the data flow graph. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A system, comprising:
-
a pre-processor for injecting a fault into a stream operator in a data stream processing application, where the pre-processor performs steps comprising; at least one processor and memory; developing a fault injection operator having specialized logic to emulate an effect of a failure, the fault injection operator corresponding to a fault model, wherein the fault injection operator is a bursty tuple loss fault injection operator; embedding the fault injection operator into a data flow graph for the data stream processing application, so as to emulate at least one possible effect of the fault model on the data stream processing application, wherein the embedding comprises; embedding the fault injection operator immediately after each source operator in the data flow graph; embedding the fault injection operator immediately before each operator in the data flow graph that contains an upstream operator that produces more than one output stream; embedding the fault injection operator immediately before each operator in the data flow graph that consumes more than one input stream; and embedding the fault injection operator immediately before each operator in the data flow graph that has a stateful upstream operator; and a compiler for compiling the data stream processing application, including the fault injection operator, into executable application code, wherein the fault injection operator is embedded only in one or more positions of the data flow graph at which the fault model manifests, and wherein the fault injection operator emulates a different failure when embedded at each of the one or more positions in the data flow graph.
-
Specification