Bias the decision of task scheduling (both for not-running and running) on node 
metrics (load, processing rate etc).
--------------------------------------------------------------------------------------------------------------------

                 Key: HADOOP-2812
                 URL: https://issues.apache.org/jira/browse/HADOOP-2812
             Project: Hadoop Core
          Issue Type: Improvement
          Components: mapred
            Reporter: Amar Kamat


HADOOP-2014 deals with a similar issue but at the rack level. This issue deals 
with the nodes on the same rack. Consider the following case
||node/host||Runnable && ~Running TIPs||host status||
|H1|T1|good|
|H2|T2|good|
|H3|T3|good|
|H4|T4,T5,T6|bad|
|H5|-|good|
|rack1|T1,T2,T3,T4,T5,T6|good in all terms (runnable/numSlots) etc|
Now if H5 asks for a new task to run,  it will be given T1. Ideally it should 
be given T4 because the processing rate of H1 is better than H4. Giving T1 will 
kill the locality of a better node. It makes more sense to kill the locality of 
a bad node instead. If H4 is overloaded then its better to select T4 since that 
might increase the chances of hitting the locality. With HADOOP-2014 the 
chances of TIPs from rack1 getting selected decreases since there might be 
other racks which are overloaded and the hosts having T4,T5,T6 (locally) are in 
better shape than H5. The point is select splits from nodes (rack local) that 
either have many local splits or might not be able to process them faster. 
----
Even for speculation, its better to speculate a TIP that _might_ take longer 
than expected amongst those which can be speculated. Consider the following
||node/host||Running TIPs||num TIPs processed|host status||
|H1|T1|2|good|
|H2|T2|1|bad|
Here it makes sense to speculate T2 since there is a reason to believe that T2 
on H2 might become a long tail.

-- 
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