hadoop-mapreduce-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "rahul k singh (JIRA)" <j...@apache.org>
Subject [jira] Commented: (MAPREDUCE-763) Capacity scheduler should clean up reservations if it runs tasks on nodes other than where it has made reservations
Date Mon, 30 Nov 2009 15:41:20 GMT

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

rahul k singh commented on MAPREDUCE-763:
-----------------------------------------

Approach :

   For every job with higher memory requirement we reserve a TT , now if a task from the job
is assigned to a unreserved tasktracker, we
   simply remove a tasktracker from the existing reserved TT list. This would make sure that
we do not reserve more than required.
   JobInProgress maintains the list of TTs reserved for map and reduce, we can use the same
, TT removed will just be first element in the list.

 The above solution has a small starvation issue incase of speculative tasks.That is because
speculative tasks cannot run on certain kind of TTs. For example:
 There is a job with 3 tips namely tip1 , tip2 , tip3.
 for attempt tip1_1 we have reserved TT1.
 for attempt tip2_1 we have reserved TT2.
 for attempt tip3_1 we have reserved TT3.
In the above case if tip1_1 is assigned to TT4 then we simply unreserve TT1 as it is at the
top of list. Now if there is second attempt
tip1_2 for tip1 , and if it cannot run on TT2 or TT3, there can be slight starvation for tip1_2
as it has to wait till it gets a TT where it could 
run.But this is kind of ok , as this is comparatively remote case and list of TTs is a dynamic
structure. In order to make above work correctly we would need attempt id , reserved tt mapping(Any
other suggestions?) . This would require some significant changes.

The above approach would also make sure that code changes are simple and straight forward
. It definitly alleviate the current situation, where chances of going overboard with reservation
is relatively higher.

> Capacity scheduler should clean up reservations if it runs tasks on nodes other than
where it has made reservations
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-763
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-763
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: contrib/capacity-sched
>    Affects Versions: 0.21.0
>            Reporter: Hemanth Yamijala
>            Assignee: rahul k singh
>             Fix For: 0.21.0
>
>
> Currently capacity scheduler makes a reservation on nodes for high memory jobs that cannot
currently run at the time. It could happen that in the meantime other tasktrackers become
free to run the tasks of this job. Ideally in the next heartbeat from the reserved TTs the
reservation should be removed. Otherwise it could unnecessarily block capacity for a while
(until the TT has enough slots free to run a task of this job).

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


Mime
View raw message