Defining the scope of consistent regions with primitive operators
When the reachability graphs of different annotated primitive operators share a common operator, they form a single consistent region. When a single consistent region is formed by different annotations and those annotations have different parameter values, the SPL compiler assigns the value of each parameter by computing the maximum parameter value among the different annotations. If the value of one of the parameters is a submission-time value, then the value must be set during submission time.
The failure of any operator in the region results in a reset of the whole region.
The following figures show examples of how consistent regions are computed when the @consistent annotation is applied to primitive operators.
One primitive operator with one consistent region
The following figure shows an example of a primitive operator with the @consistent annotation. The consistent region is defined by the reachability graph of the annotated operator. In this example, operators op2-6 and op10 are in the reachability graph.
Primitive operators with separate consistent regions
The following figure shows an example with the @consistent annotation placed on two primitive operators (op1 and op7). The reachability graph of each operator does not form a single region because they do not share a common operator. As a result, two independent consistent regions are formed, which is shown by different patterns on operators in each region.