[ https://issues.apache.org/jira/browse/MAPREDUCE-5176?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13662348#comment-13662348 ]
Carlo Curino commented on MAPREDUCE-5176: ----------------------------------------- Interesting point, although @Stateless is a stricter condition that we need. It is ok to maintain state as far as it is not semantically required to persist across key boundaries (two common cases are: 1) you have state that you reset or ignore at every new key group, e.g., aggregate group-by key, and 2) you maintain state as an optimization (memoization) but it is not required for correctness. So while @Stateless would guarantee "safe to preempt using default checkpointing" it is tighter than we need. In general, I would expect a user that tags its code to understand the @Preemptable semantics which is "if your code does not depend on state to be preserved across key boundaries you are good to go, otherwise you should carefully override these methods". > Preemptable annotations (to support preemption in MR) > ----------------------------------------------------- > > Key: MAPREDUCE-5176 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-5176 > Project: Hadoop Map/Reduce > Issue Type: Improvement > Components: mrv2 > Reporter: Carlo Curino > Assignee: Carlo Curino > Attachments: MAPREDUCE-5176.1.patch, MAPREDUCE-5176.patch > > > Proposing a patch that introduces a new annotation @Preemptable that > represents to the framework property of user-supplied classes (e.g., Reducer, > OutputCommiter). The intended semantics is that a tagged class is safe to be > preempted between invocations. > (this is in spirit similar to the Output Contracts of [Nephele/PACT | > https://stratosphere.eu/sites/default/files/papers/ComparingMapReduceAndPACTs_11.pdf]) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira