Composite operators and consistent regions
@consistent annotation is applied to a composite
operator, the annotation indicates that the composite operator and the downstream
operators of the composite operator participate in a single consistent
region. All the primitive operators inside the composite operator and their
downstream operators form a single consistent region even if they do not form a connected
subgraph.- An operator that has no input streams, for example, a source operator
- An operator in which all its input stream connections originate from outside
of the enclosing annotated composite.
Such
an operator must be able to replay its output stream. If it is not, include a
ReplayableStartoperator as the start operator.Important: Remember, however, that applications that use aReplayableStartoperator cannot be deployed to an instance with fewer than four host resources.
The following figures show several examples on how consistent regions
are computed when the @consistent annotation is applied
to composite operators.
One composite operator with one consistent region
The following figure shows an example of an SPL graph that is annotated with
@consistent. In this example, the whole composite, which is indicated by the
box, is annotated with @consistent. The figure shows the same pattern on all
the operators that are in the consistent region. All the operators that are inside the composite
belong to the same consistent region. The compiler automatically identified
op1 and op7 as the start operators of
the consistent region, which are indicated with the label, start. From the two
start operators, the compiler computes their downstream operators. The compiler identifies
op6, op9, and
op10 as the end operators of the consistent region, which are
indicated with the label, end. All the end operators are sink operators.

Composite operator with disconnected subgraphs
The
following figure shows an example of a composite operator (shown with
the box) with the @consistent annotation. In this
example, the composite operator contains two disconnected subgraphs:
the subgraph with op1 through op5 and op6 and
the subgraph with op7 through op9.
Because the annotation is applied on the composite operator, both
subgraphs are in the same consistent region.

Multiple composite operators with one consistent region
The following figure shows an example where the @consistent annotation is placed
on two composite operators. The downstream operators of both composite operators contain
op15, which results in a single consistent region.
