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

Varun Saxena updated YARN-3986:
-------------------------------
    Description: 
Currently getTransferredContainers is present in {{AbstractYarnScheduler}}.
*But in ApplicationMasterService, while registering AM, we are calling this 
method by typecasting it to AbstractYarnScheduler, which is incorrect.*

This method should be moved to YarnScheduler.

Because if a custom scheduler is to be added, it will implement YarnScheduler, 
not AbstractYarnScheduler.
As ApplicationMasterService is calling getTransferredContainers by typecasting 
it to AbstractYarnScheduler, it is imposing an indirect dependency on 
AbstractYarnScheduler for any pluggable custom scheduler.

We can move the method to YarnScheduler and leave the definition in 
AbstractYarnScheduler as it is.

  was:
Currently getTransferredContainers is present in {{AbstractYarnScheduler}}.
But in ApplicationMasterService, while registering AM, we are calling this 
method by typecasting it to AbstractYarnScheduler, which is incorrect.

This method should be moved to YarnScheduler.

Because if a custom scheduler is to be added, it will implement YarnScheduler, 
not AbstractYarnScheduler.
As ApplicationMasterService is calling getTransferredContainers by typecasting 
it to AbstractYarnScheduler, it is imposing an indirect dependency on 
AbstractYarnScheduler for any pluggable custom scheduler.

We can move the method to YarnScheduler and leave the definition in 
AbstractYarnScheduler as it is.


> getTransferredContainers in AbstractYarnScheduler should be present in 
> YarnScheduler interface instead
> ------------------------------------------------------------------------------------------------------
>
>                 Key: YARN-3986
>                 URL: https://issues.apache.org/jira/browse/YARN-3986
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: scheduler
>    Affects Versions: 2.7.0
>            Reporter: Varun Saxena
>            Assignee: Varun Saxena
>
> Currently getTransferredContainers is present in {{AbstractYarnScheduler}}.
> *But in ApplicationMasterService, while registering AM, we are calling this 
> method by typecasting it to AbstractYarnScheduler, which is incorrect.*
> This method should be moved to YarnScheduler.
> Because if a custom scheduler is to be added, it will implement 
> YarnScheduler, not AbstractYarnScheduler.
> As ApplicationMasterService is calling getTransferredContainers by 
> typecasting it to AbstractYarnScheduler, it is imposing an indirect 
> dependency on AbstractYarnScheduler for any pluggable custom scheduler.
> We can move the method to YarnScheduler and leave the definition in 
> AbstractYarnScheduler as it is.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to