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

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

The current implementation is reactive to a preemption request, since for the 
reduce phase it also means committing partial output for the task and in 
general requires saving possibly large state (not amenable to periodic 
invocations). We are consider a rework of the shuffle phase that will reduce 
this by a lot, in which case we could consider alternatives (this is related to 
this [HDFS-based shuffle comment | 
https://issues.apache.org/jira/browse/YARN-666?focusedCommentId=13659024&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13659024]).
 

More generally, I think checkpointing is a very basic and flexible tool that 
can be used also for:
1) dyanmic optimizations (e.g., task-splitting to handle skew, or to pause 
reducers when there is heavy map skew and reducers are sitting idle waiting for 
the last map to complete)
2) general fault tolerance (e.g., this would allow to run a number of tasks 
that matches the available slots, and use checkpoint to limit the wasted work 
in case of failures).  

This generality is why we factored out a CheckpointService API in 
MAPREDUCE-5197 instead of simply writing to HDFS from our code (BTW check the 
API for CheckpointService out if you have time, I am curious to get people's 
reaction to it).
                
> 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