[ 
https://issues.apache.org/jira/browse/YARN-103?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13536929#comment-13536929
 ] 

Tom White commented on YARN-103:
--------------------------------

> The interface shouldn't really be implemented by anyone outside of YARN

This is the heart of the problem. We don't have a way to say (via the audience 
annotations) that an interface is for read-only use only - and not for users to 
implement. An interface may be @Public @Stable from the point of view of a user 
who wants to call it, but that doesn't mean that folks should implement it 
themselves, since for interfaces like the one we are discussing we might want 
to add a new method, say (note that such a change is compatible with @Stable). 
Adding a new method is fine for the first type of user, but not for the second, 
since their implementation breaks.

In this case, I think it's likely we'll add more methods. For example, it would 
be useful to add a waitForState method to YarnClient (which is also an 
interface), which waits for a given application to reach a particular 
YarnApplicationState. If YarnClient were a class then this would be a 
compatible change, but if it's an interface then it is not.

I think we should do one of the following:
1. Change YarnClient and AMRMClient to be concrete implementations.
2. Leave the interface/implementation distinction and make the interfaces 
@Public @Unstable.

I prefer 1. since these classes are helper classes - they are not a 
tightly-defined interface.
                
> Add a yarn AM - RM client module
> --------------------------------
>
>                 Key: YARN-103
>                 URL: https://issues.apache.org/jira/browse/YARN-103
>             Project: Hadoop YARN
>          Issue Type: Improvement
>            Reporter: Bikas Saha
>            Assignee: Bikas Saha
>         Attachments: YARN-103.1.patch, YARN-103.2.patch, YARN-103.3.patch, 
> YARN-103.4.patch, YARN-103.4.wrapper.patch, YARN-103.5.patch, 
> YARN-103.6.patch, YARN-103.7.patch
>
>
> Add a basic client wrapper library to the AM RM protocol in order to prevent 
> proliferation of code being duplicated everywhere. Provide helper functions 
> to perform reverse mapping of container requests to RM allocation resource 
> request table format.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to