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

Carlo Curino commented on MAPREDUCE-5176:
-----------------------------------------

Karthik, I think there are several other annotations we might want to think 
about. @Stateless is one, another one is @PreserveKeyOrder which can express 
for example that maps are not messing with sort order and would allow a smart 
runtime to pipeline maps and reduces (and skip shuffling) when the input is 
sorted. I think this could be a powerful tool to expose opportunities for 
runtime optimization which are not possible in the general case (unless you 
know something about the code semantics). 

If none disagree, I like the idea to have this in a common place (maybe 
yarn-common as Karthik suggested?). 

BTW I think we are in a great spot to carry along this conversation, since we 
have one very specific example of these annotations: @Preemptable for which we 
have the entire end-to-end usage scenario (all the preemption in mapreduce 
stuff tracked in MAPREDUCE-5189, MAPREDUCE-5192, MAPREDUCE-5194, 
MAPREDUCE-5196, MAPREDUCE-5197 and few upcoming ones), and plenty more ideas 
coming up from people. 

Ideally I would like to move forward with the @Preemptable one and see it 
through (so we can evaluate it and learn from it), and in parallel we can 
initiate a broader (and rightfully longer) conversation around annotations for 
runtime-optimization.

Sandy, what we envisioned for mapreduce is that and advanced user that have a 
stateful UDF can mark it as @Preemptable and override the default save to 
checkpoint logic to include the portion of state he/she cares about. 

                
> 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

Reply via email to