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

Jason Lowe commented on YARN-7248:
----------------------------------

Thanks for the patch!  It no longer applies and needs to be rebased.  Given the 
amount of code that was deleted as part of this patch, making this a substate 
for RUNNING seems to make a lot of sense.  It simplifies a lot of common logic 
patterns when examining the state.

I think the approach in the patch will work, but it's not very efficient.  It's 
going to send the "EXTRA_STATE_INFO" string and whatever container state string 
for every container status of every container.  In addition consumers of the 
container state now have to do a hashmap lookup and string compare to determine 
what the extra state value is when it used to be a simple numerical compare.  

That extra memory and computation seems like such a waste, and it doesn't solve 
the problem of new values being exposed to older clients.  If we were to add 
another container substate like "FOOBARD" then older clients still won't know 
what to do with that string value, just like they wouldn't know what to do if 
it were a new value on an enum.  Therefore I'd rather just see this be a 
separate sub-state enumeration.  It will be much more efficient, both for the 
writer and reader of ContainerState records.

> NM returns new SCHEDULED container status to older clients
> ----------------------------------------------------------
>
>                 Key: YARN-7248
>                 URL: https://issues.apache.org/jira/browse/YARN-7248
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: nodemanager
>    Affects Versions: 2.9.0, 3.0.0-alpha2
>            Reporter: Jason Lowe
>            Assignee: Arun Suresh
>            Priority: Blocker
>         Attachments: YARN-7248.001.patch
>
>
> YARN-4597 added a new SCHEDULED container state and that state is returned to 
> clients when the container is localizing, etc.  However the client may be 
> running on an older software version that does not have the new SCHEDULED 
> state which could lead the client to crash on the unexpected container state 
> value or make incorrect assumptions like any state != NEW and != RUNNING must 
> be COMPLETED which was true in the older version.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to