[ 
https://issues.apache.org/jira/browse/MAPREDUCE-2421?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tom White updated MAPREDUCE-2421:
---------------------------------

    Attachment: MAPREDUCE-2421.patch

I looked at extracting a JobsManager class, but the jobs map is deeply 
entangled in JobTracker, and there's not a clean separation here. More 
importantly, from the point of view of this JIRA it doesn't remove the 
dependency that JobHistory has on JobTracker. Replacing the dependency on 
JobTracker with one on a JobManager class, which has a map of JobInProgress 
objects doesn't help, since JobInProgess itself depends on JobTracker. So, 
unfortunately, this doesn't look like a workable approach.

Instead I think the current patch is a reasonable solution - it's a standard 
technique of using a callback interface to facilitate decoupling (a bit like 
TaskTrackerManager which exists to make JobTracker more manageable for 
testing). I've regenerated the patch to mark the interface as @Private 
@Unstable and added some javadoc so it's clearer what its purpose is.


> Remove JobHistory's dependency on JobTracker
> --------------------------------------------
>
>                 Key: MAPREDUCE-2421
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-2421
>             Project: Hadoop Map/Reduce
>          Issue Type: Sub-task
>          Components: client
>            Reporter: Tom White
>            Assignee: Tom White
>         Attachments: MAPREDUCE-2421.patch, MAPREDUCE-2421.patch
>
>
> The direct dependency can be removed by introducing a callback inteface. This 
> is for MAPREDUCE-1638. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to