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.