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

Brice Arnould commented on HADOOP-3412:
---------------------------------------

This new version have far greater tests than my hacks and is much less 
intrusive (with the drawbacks mentioned before).
Thanks Tom for writing this ^^
My two cents :
 * Maybe the TaskTrackerManager interface could be package-private, since it is 
not meant to be used by end-users (if I understood well).
 * Maybe the fact that queues are now described just by comparators is a bit 
restrictive. For example I think that it prevents schedulers like [HADOOP-3746] 
(and many others) to be implemented as queues. I _really_ liked the previous 
JobQueue abstract class but since it didn't made a consensus I suggest that 
subclasses could specify a Set<JobInProgress> instead of a 
Comparator<JobInProgress> (or a SortSet but I don't think that the extra  
methods this interface adds are needed).
So the constructor 
{code:java}
  protected JobQueueTaskScheduler(
      Comparator<JobInProgress> jobQueueComparator) {
    this.jobQueue = new TreeSet<JobInProgress>(jobQueueComparator);
  }
{code}
would become
{code:java}
  protected JobQueueTaskScheduler(
      Set<JobInProgress> jobQueue) {
    this.jobQueue = jobQueue                                       
  }
{code}

[EMAIL PROTECTED] Thanks, happy if I helped :-D Contributing to Hadoop is very 
instructive (and fun too :-P)

> Refactor the scheduler out of the JobTracker
> --------------------------------------------
>
>                 Key: HADOOP-3412
>                 URL: https://issues.apache.org/jira/browse/HADOOP-3412
>             Project: Hadoop Core
>          Issue Type: Improvement
>          Components: mapred
>            Reporter: Brice Arnould
>            Assignee: Brice Arnould
>            Priority: Minor
>             Fix For: 0.19.0
>
>         Attachments: JobScheduler-v9.patch, JobScheduler.patch, 
> JobScheduler_v2.patch, JobScheduler_v3.patch, JobScheduler_v3b.patch, 
> JobScheduler_v4.patch, JobScheduler_v5.patch, JobScheduler_v6.1.patch, 
> JobScheduler_v6.2.patch, JobScheduler_v6.3.patch, JobScheduler_v6.4.patch, 
> JobScheduler_v6.patch, JobScheduler_v7.1.patch, JobScheduler_v7.patch, 
> JobScheduler_v8.patch, RackAwareJobScheduler.java, 
> SimpleResourceAwareJobScheduler.java
>
>
> First I would like warn you that my proposition is assumed to be very naive. 
> I just hope that reading it won't make you lose time.
> h4. The aim
> It seems to me that improving Hadoop scheduling could be very profitable. 
> But, it is hard to implement and compare schedulers, because the scheduling 
> logic is mixed within the rest of the JobTracker.
> This bug is the first step of an attempt to improve the Hadoop scheduler. It 
> re-implements the current scheduling algorithm in a separate class called 
> JobScheduler. This new class is instantiated in the JobTracker.
> h4. Bug fixed as a side effects
> This patch probably cannot be submited as it is.
> A first difficulty is that it does not have exactly the same behaviour than 
> the current JobTracker. More precisely, it doesn't re-implement things like 
> code that seems to be never called or concurency problems.
> I wrote TOCONFIRM where my proposition differ from the current 
> implementation, so you can find them easily.
> I know that fixing bugs silently is bad. So, independently of what you decide 
> about this patch, I will open issues for bugs that you confirm.
> h4. Other side effects
> Another side effect of this patch is to add documentation about each step of 
> the scheduling. I hope that it will help future improvement by lowering the 
> level required to contribute to the scheduler.
> It also reduces the complexity and the granularity of the JobTracker (making 
> it more parallel).
> h4. The future
> If you feel that this is a step the right direction, I will try to propose a 
> JobSchedulerInterface that many JobSchedulers could implement and to propose 
> alternatives to the current « FifoJobScheduler ».  If some of you have ideas 
> about that please tell ^^ I will also open issues for things marked as FIXME 
> in the patch.

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