[
https://issues.apache.org/jira/browse/TEZ-1194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14088037#comment-14088037
]
Bikas Saha commented on TEZ-1194:
---------------------------------
About the patch itself.
"new TezUserPayload(null)" can go in the else stmt so that its allocated only
when necessary. Also maybe initialize the version to -1 because there was no
user payload.
Also, "if (proto.hasVersion()) {" is potentially unnecessary since the version
field should always be serialized (0 or >0 does not matter).
{code}
+ TezUserPayload userPayload = new TezUserPayload(null);
if (proto.hasUserPayload()) {
- bb = proto.getUserPayload().toByteArray();
+ if (proto.hasVersion()) {
+ userPayload =
DagTypeConverters.convertToUserPayload(proto.getUserPayload().toByteArray(),
proto.getVersion());
+ } else {
+ userPayload =
DagTypeConverters.convertToUserPayload(proto.getUserPayload().toByteArray(), 0);
+ }
{code}
Lets keep the nullable and fix that in a separate patch. I can commit this
patch after the above comments are addressed. Thanks!
> 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, TEZ-1194.3-wip.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)