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

Amar Kamat commented on MAPREDUCE-1353:
---------------------------------------

TaskInProgress requires few getter-like information from JobInProgress which 
can be passed as (method) arguments. By doing this we can get rid of the 
JobInProgress back-reference in TaskInProgress and lower the effect of a TIP 
reference leak atleast (see MAPREDUCE-1316).

Following are the methods where the JobInProgress object is used by 
TaskInProgress

- _shouldClose()_ : Calls job.getStatus().getRunState()  which can be passed as 
a parameter. 
- _updateStatus()_ : Requires job.hasSpeculativeMaps()/job.hasSpeculativeMaps() 
which can be passed as arguments. 
- _updateStatus()_ : Called from JobInProgress. Calls 
job.updateStatistics(oldProgRate, currProgRate, isMapTask()) which can be 
called by JobInProgress after the call to _updateStatus()_ something like 

{code}
float oldProgRate = tip.getOldProgress();
tip.updateStatus(taskstatus, hasSpeculativeMaps(), hasSpeculativeReduces());
float currProgRate = tip.getOldProgress();
updateStatistics(oldProgRate, currProgRate, isMapTask()); // internal call
{code}

- _canBeSpeculated()_ : Requires job.getRunningTaskStatistics(isMapTask()) and 
job.getSlowTaskThreshold() which can be passed as an argument.
- _getTaskToRun()_ : Requires job.getNumRestarts() which can be passed as an 
argument.
 
 Also TaskInProgress has a _getJob()_ api used only by the JobTracker either 
for JobID or for JobInProgress. JobTracker can very well use its own _getJob()_ 
i.e
{code}
JobID id = tip.getJob().getJobID()
{code}
 can be replaced by 
{code}
JobID id = tip. getTIPId().getJobID();
{code}

   and
{code}
JobInProgress jip = tip.getJob() 
{code}
can be replaced by 
{code}
JobInProgress jip = getJob(tip.getTIPId().getJobID());
{code}

Thoughts?

> Remove JobInProgress (back?) reference from TaskInProgress
> ----------------------------------------------------------
>
>                 Key: MAPREDUCE-1353
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-1353
>             Project: Hadoop Map/Reduce
>          Issue Type: Improvement
>          Components: jobtracker
>    Affects Versions: 0.22.0
>            Reporter: Amar Kamat
>            Assignee: Amar Kamat
>             Fix For: 0.22.0
>
>
> Looks like TaskInProgress can get rid of JobInProgress back-reference if the 
> values it requires from the JobInProgress are passed as parameters. 

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