[ 
https://issues.apache.org/jira/browse/HADOOP-1900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12542122
 ] 

amareshwari edited comment on HADOOP-1900 at 11/13/07 4:53 AM:
----------------------------------------------------------------------------

With the patch attached, I ran sort benchmarks on 390 node cluster and 120 node 
cluster. The performance is almost the same as with the trunk.

To simulate busyness at the job tracker, I ran the sort benchmarks on 120 node 
cluster with number of handlers=4 and with max queue size per handler =10, but 
there are drops and lost task trackers with the patch and without. 

Thus Cluster size factor as (clusterSize/50+1) should be fine. But the 
busyFactor has to be better tuned.

I propose the following to tune busy factor:

We have threshouldDropCount = clusterSize/10;

We increment busyFactor by  HEARTBEAT_BUSY_FACTOR (say 2secs) for every 10% 
cluster size drops.
if(dropCount > threshouldDropCount) {
  busyFactor += (dropCount/threshouldDropCount)*HEARTBEAT_BUSY_FACTOR;
}

For example, on a 100 node cluster, if we see 40 drops, busyFactor is 
incremented by 8 seconds (40/10*2).

If job tracker is not busy for 'observationInterval' , then we will decrement 
busyFactor by HEARTBEAT_BUSY_FACTOR;

To calculate observationInterval, 
We have,  2 rpcs to be processed as at the jobtracker i.e. heartbeat and task 
completion events. let processing time per rpc be 2 seconds. 
Here, notBusyPeriod is calculated as:
notBusyPeriod = (clusterSize/#handlers)*processingTime*2;

Assuming that we don't see drops at a certain observationInterval (and the 
corresponding busyFactor), we decrement the busyFactor by 
HEARTBEAT_BUSY_FACTOR. This can be done in a loop, until we see drops. When we 
see drops, we increment it by the constant HEARTBEAT_BUSY_FACTOR, and stabilize 
there .. until we see drops. 

For example, On a 100 on cluster, We start with 2 seconds heartbeat interval.
We see 40 drops, then busyFactor = 8; then, new interval = (2+8) =10;
We dont see drops for 40 seconds;  new interval = 10-2 =8;
We dont see drops for 40 seconds;  new interval = 8-2 =6;
We dont see drops for 40 seconds;  new interval = 6-2 =4;
We see drops; then new interval = 6;
We dont see drops for lone time, say. we stabilize here.
Say  we see 30 drops after some time, busyFactor =6; new interval = 6+6 =12;
And the loop repeats.

Thoughts?

      was (Author: amareshwari):
    With the patch attached, I ran sort benchmarks on 390 node cluster and 120 
node cluster. The performance is almost the same as with the trunk.

To simulate busyness at the job tracker, I ran the sort benchmarks on 120 node 
cluster with number of handlers=4 and with max queue size per handler =10, but 
there are drops and lost task trackers with the patch and without. 

Thus Cluster size factor as (clusterSize/50+1) is fine. but the busy factor has 
to be tuned more.

I propose the following to tune busy factor:

We have threshouldDropCount = clusterSize/10;

We increment busyFactor by  HEARTBEAT_BUSY_FACTOR (say 2secs) for 10% cluster 
size drops.
if(dropCount > threshouldDropCount) {
  busyFactor += (dropCount/threshouldDropCount)*HEARTBEAT_BUSY_FACTOR;
}

if job tracker is not busy for '_notBusyPeriod_' , then we will decrement 
busyFactor by HEARTBEAT_BUSY_FACTOR;
We have,  2 rpcs to be processed as at the jobtracker i.e. heartbeat and task 
completion events. let processing time for rpc be 2 seconds. 
Here, notBusyPeriod is calculated as:
notBusyPeriod = (clusterSize/#handlers)*processingTime*2;

To stabilize, 
consider we have drops at t, and we increment heartbeat interval by 
busyfactor,_b_. And we notice that _b_ is small enough to get decremented  and 
we dont see drops at the new interval, then we stabilize.

Thoughts?
  
> the heartbeat and task event queries interval should be set dynamically by 
> the JobTracker
> -----------------------------------------------------------------------------------------
>
>                 Key: HADOOP-1900
>                 URL: https://issues.apache.org/jira/browse/HADOOP-1900
>             Project: Hadoop
>          Issue Type: Improvement
>          Components: mapred
>            Reporter: Owen O'Malley
>            Assignee: Amareshwari Sri Ramadasu
>         Attachments: patch-1900.txt, patch-1900.txt
>
>
> The JobTracker should scale the intervals that the TaskTrackers use to 
> contact it dynamically, based on how the busy it is and the size of the 
> cluster.

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