[
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