IBM Streams 4.2.1

Consistent annotation

The SPL annotation @consistent that defines consistent regions can be configured according to how and when the regions are drained, and the maximum amount of time that a region is allotted for a drain or reset process to complete.

Read syntax diagramSkip visual syntax diagram
>>-@consistent--(--trigger--=--trigger-type--------------------->

>--+-------------------------------+---------------------------->
   '-,--period--=--period-interval-'   

>--+-----------------------------------+------------------------>
   '-,--drainTimeout--=--drain-timeout-'   

>--+-----------------------------------+------------------------>
   '-,--resetTimeout--=--reset-timeout-'   

>--+---------------------------------------------------+--)----><
   '-,--maxConsecutiveResetAttempts--=--reset-attempts-'      

The @consistent annotation can be applied to primitive and composite operators. IBM® Streams calculates the boundaries of the consistent region that is based on the reachability graph of the annotated operator.

trigger
Indicates how the establishment of a consistent state is triggered. This parameter is required. You must choose one of the following options:
periodic
Indicates that the region establishes a consistent state at a specified time interval. When you choose this option, you must also specify the period parameter. The interval begins counting after the end of the previously successful consistent state, or a reset to a previously completed consistent state.
operatorDriven
Indicates that the start operator of a consistent region triggers the establishment of a consistent state of the region. To use this option, the consistent region must have a single start operator.
period

If the trigger parameter is set to periodic, this parameter specifies the time in seconds between two consecutive drains of a consistent region. This parameter is required when the trigger is set to periodic. The type of the parameter is float64. The valid value range is greater than 0.0 seconds. There is no default value.

drainTimeout
Indicates the maximum time in seconds that the drain and checkpoint of the region is allotted to finish processing. If the process takes longer than the specified time, a failure is reported and the region is reset to the point of the previously successfully established consistent state. The type of the parameter is float64. The valid value range is greater than 0.0 seconds. The default value is 180.0 seconds.
resetTimeout
Indicates the maximum time in seconds that the reset of the region is allotted to finish processing. If the process takes longer than the specified time, a failure is reported and another reset of the region is attempted. The type of the parameter is float64. The valid value range is greater than 0.0 seconds. The default value is 180.0 seconds.
maxConsecutiveResetAttempts
Indicates the maximum number of consecutive attempts to reset a consistent region. After a failure, if the maximum number of attempts is reached, the region stops processing new tuples. After the maximum number of consecutive attempts is reached, a region can be reset only with manual intervention or with a program that calls a method in the consistent region controller. The type of the parameter is int32. The valid value range is greater than 0. The default value is 5 attempts.