hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Leitao Guo (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HADOOP-3674) dynamic heartbeat interval for the locality-aware task scheduling
Date Wed, 02 Jul 2008 06:18:45 GMT

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

Leitao Guo commented on HADOOP-3674:
------------------------------------

check this senario:

H1 has the data of Task1
H2 has the data of Task2
H3 has the data of Task3
H4 has the data of Task4
H5 has no data

And now, tasktrackers ask for new tasks in this order: H5, H4, H3, H2, H1.
If there is no special task scheduling policy for those tasktrackers who have no data, there
would be like this:

Task4 is scheduled to H5,
Task3 is scheduled to H4,
Task2 is scheduled to H3,
Task1 is scheduled to H2,
no task is scheduled to H1.

This has caused the IO stress for data movement, although no compute cycies are wasted.
So, if there is a kind of reservation policy for task scheduling, and let those tasktrackers
have no data wait for a litter more time, the situation would be like this:

Task4 is scheduled to H4,
Task3 is scheduled to H3,
Task2 is scheduled to H2,
Task1 is scheduled to H1,
no task is scheduled to H5.

This may be more efficient.

> dynamic heartbeat interval for the locality-aware task scheduling
> -----------------------------------------------------------------
>
>                 Key: HADOOP-3674
>                 URL: https://issues.apache.org/jira/browse/HADOOP-3674
>             Project: Hadoop Core
>          Issue Type: Wish
>          Components: mapred
>            Reporter: Leitao Guo
>            Priority: Minor
>
> In current hadoop release (0.17.0), there is no special scheduling policy for those tasktrackers
who have no data for some jobs. So, there would be inefficient in some senarios. For example,
tasktracker A has the data for a job, but tasktracker B, which has no data for this job, sends
the heartbeat message to the jobtracker for a new task before tasktrack A. The task may be
scheduled to B instead of A. While Jobtracker has to find a new task for tasktracker A when
A ask for a new task. 
> In this situation, if jobtracker has some reservation policy, such as reserve the task
for tasktracker A and let B ask for new task in the next heartbeat message, that would be
more efficient. Because before tasktracker B asking for new task the second time, tasktracker
A has applied for a new task and jobtracker has scheduled the task to A.
> Here is a rough idea to deal with the senario above:
> (1) Jobtracker receives the heartbeat message sent by tasktracker B, which has no data
for any job.
> (2) Jobtracker send response message to tasktracker B with a new heartbeat message interval,
but does not schedule new task to B.  The new heartbeat interval should be shorter the current
heartbeat interval, for example, current_heartbeat_interval/2.
> (3) Tasktracker B receive the response from jobtracker, and sends another heartbeat message
for a new task after a period of current_heartbeat_interval/2 .
> (4) Jobtracker then find a new task for tasktracker B.
> This is just an primary idea for the improvement of the locality-aware scheduling. Any
comments are welcome.

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