[ 
https://issues.apache.org/jira/browse/APEXCORE-339?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15174553#comment-15174553
 ] 

Munagala V. Ramanath commented on APEXCORE-339:
-----------------------------------------------

What's our working definition of an idempotent operator ?

Mathematically, a function f is idempotent if f(f(x)) = f(x) for all x.
The wikipedia page also has this: "In Event Stream Processing, idempotence 
refers to the ability of a system to produce the same outcome, even if an event 
or message is received more than once."

What's our definition in Apex ? Maybe something like this:
"An operator is idempotent if it emits the same output tuples (or effects on 
external systems) on each output port
when (parts of) the input stream on each port is replayed ?"

> Support ability to tag operators as idempotent or non-idempotent
> ----------------------------------------------------------------
>
>                 Key: APEXCORE-339
>                 URL: https://issues.apache.org/jira/browse/APEXCORE-339
>             Project: Apache Apex Core
>          Issue Type: Bug
>            Reporter: Pramod Immaneni
>            Assignee: Pramod Immaneni
>
> Certain application require idempotency and some others don't. Additionally 
> operators such as input operators need to be specially instrumented to 
> exhibit idempotent behavior. Certain output operators like database operators 
> rely on idempotency. For these reasons we need ability to label operators as 
> idempotent or now, whether output operators require idempotency from upstream 
> operators or not. In case of a failure the platform should handle 
> non-idempotent streams by restarting the failed operator and all downsteram 
> operators at the same checkpoint.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to