hadoop-yarn-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Joseph Evans (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (YARN-528) Make IDs read only
Date Tue, 30 Apr 2013 21:16:16 GMT

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

Robert Joseph Evans commented on YARN-528:
------------------------------------------

The approach seems OK to me, but I would rather have the impl be an even thinner wrapper.

{code}
  private ApplicationIdProto proto = null;
  private ApplicationIdProto.Builder builder = null;

  ApplicationIdPBImpl(ApplicationIdProto proto) {
    this.proto = proto;
  }

  public ApplicationIdPBImpl() {
    this.builder = ApplicationIdProto.newBuilder();
  }
 
  public ApplicationIdProto getProto() {
    assert (proto != null);
    return proto;
  }
 
  @Override
  public int getId() {
    assert (proto != null);
    return proto.getId();
  }
 
  @Override
  protected void setId(int id) {
    assert (builder != null);
    builder.setId((id));
  }

  @Override
  public long getClusterTimestamp() {
    assert(proto != null);
    return proto.getClusterTimestamp();
  }
 
  @Override
  protected void setClusterTimestamp(long clusterTimestamp) {
    assert(builder != null);
    builder.setClusterTimestamp((clusterTimestamp));
  }

  @Override
  protected void build() {
    assert(builder != null);
    proto = builder.build();
    builder = null;
  }
{code}
                
> Make IDs read only
> ------------------
>
>                 Key: YARN-528
>                 URL: https://issues.apache.org/jira/browse/YARN-528
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>            Reporter: Robert Joseph Evans
>            Assignee: Robert Joseph Evans
>         Attachments: y528_AppIdPart_01_Refactor.txt, y528_AppIdPart_02_AppIdChanges.txt,
y528_AppIdPart_03_fixUsage.txt, y528_ApplicationIdComplete_WIP.txt, YARN-528.txt, YARN-528.txt
>
>
> I really would like to rip out most if not all of the abstraction layer that sits in-between
Protocol Buffers, the RPC, and the actual user code.  We have no plans to support any other
serialization type, and the abstraction layer just, makes it more difficult to change protocols,
makes changing them more error prone, and slows down the objects themselves.  
> Completely doing that is a lot of work.  This JIRA is a first step towards that.  It
makes the various ID objects immutable.  If this patch is wel received I will try to go through
other objects/classes of objects and update them in a similar way.
> This is probably the last time we will be able to make a change like this before 2.0
stabilizes and YARN APIs will not be able to be changed.

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

Mime
View raw message