[ 
https://issues.apache.org/jira/browse/HADOOP-3140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12584711#action_12584711
 ] 

Amar Kamat commented on HADOOP-3140:
------------------------------------

Arun, Two things
1) If the status is replayed by the TaskTracker, the JobTracker will take care 
of that. The {{JobTracker.heartbeat()}} will simply discard it there and then.
2) If at all the status gets replayed (in {{JobInProgress.updateTaskStatus()}}) 
it will be taken care as follows
a) task t comes in as {{SUCCEEDED}} for a tip that is already completed.
b) It will be marked (locally) as {{KILLED}} and the tasks status will be 
updated in the JT.
c) If at all the status is resent, it will be marked locally as {{KILLED}}. Now 
the *change* in the status will result in as _false_ and nothing will happen.
The reason for marking the task as {{KILLED}} (locally) is to make sure that 
the semantics of the trunk is retained. If  the state is updated first and 
later marked as {{KILLED}} then the task status will be temporarily marked as 
{{SUCCEEDED}}. 

> JobTracker should not try to promote a (map) task if it does not write to DFS 
> at all
> ------------------------------------------------------------------------------------
>
>                 Key: HADOOP-3140
>                 URL: https://issues.apache.org/jira/browse/HADOOP-3140
>             Project: Hadoop Core
>          Issue Type: Bug
>          Components: mapred
>            Reporter: Runping Qi
>            Assignee: Amar Kamat
>             Fix For: 0.17.0
>
>         Attachments: HADOOP-3140-v1.patch
>
>
> In most cases, map tasks do not write to dfs.
> Thus, when they complete, they should not be put into commit_pending queue at 
> all.
> This will improve the task promotion significantly.
>  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to