[
https://issues.apache.org/jira/browse/TEZ-1194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14085435#comment-14085435
]
Tsuyoshi OZAWA commented on TEZ-1194:
-------------------------------------
{quote}
To avoid copying buffers we may have to add the version in TezEntityDescriptor
proto object directly instead of creating a TezUserPayload proto object (like
we have already discussed in the initial TezUserPayload jira).
{quote}
This is a better design. I'll plan to add it as optional field in
TezEntityDescriptorProto.
{quote}
Not sure about getPayload() not being Nullable. It is expected to Nullable.
{quote}
Yes, current interface of TezUserPayload is as follows.
{code}
public class TezUserPayload {
public TezUserPayload(@Nullable byte[] payload) {}
public TezUserPayload(@Nullable byte[] payload, int version) {}
@Nullable public byte[] getPayload() {}
public int getVersion() {}
public boolean hasPayload() {}
}
{code}
{quote}
However, if you feel this should go to a different jira then please feel free
to do so.
{quote}
If the change can be large because of this, I'll do it on another JIRA. I'll
report it when I attach the next patch. Thanks for your quick review!
> Make TezUserPayload user facing for payload specification and change to
> ByteBuffer
> ----------------------------------------------------------------------------------
>
> Key: TEZ-1194
> URL: https://issues.apache.org/jira/browse/TEZ-1194
> Project: Apache Tez
> Issue Type: Sub-task
> Reporter: Bikas Saha
> Assignee: Tsuyoshi OZAWA
> Priority: Blocker
> Attachments: TEZ-1194.1.patch, TEZ-1194.2.patch
>
>
> Now that we have TezUserPayload being used internally to represent user
> payload it may be useful to make it user facing on the API for specifying
> payloads. Advantages
> 1) Clear code for the user instead of having untyped byte[] everywhere
> 2) Lets us internally evolve the representation of user payload and make it
> more efficient without having to break APIs. We can start with
> TezUserPayload(byte[]) and then move on to TezUserPayload(ByteBuffer) and so
> on while maintaining backwards compatibility without needing to add new
> methods. Old code can be translated within TezUserPayload while user migrates
> the code.
--
This message was sent by Atlassian JIRA
(v6.2#6252)