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

Rohith Sharma K S commented on YARN-5611:
-----------------------------------------

bq. 1. ApplicationUpdateTimeoutMapProto -> ApplicationUpdateTimeoutProto. May 
not need to have "map" in the name of proto
It is naming convention I maintained with other map protos. Do not want to 
change its naming convention. 

bq. There is a any chance that NEW_SAVING could fail and app could no longer be 
in next state. We could consider apps which are from ACCEPTED state, correct? 
Any specific reason to consider NEW_SAVING?
Update timeout can also possible in NEW_SAVING state. This is because  
state-store update is done from dispatcher queue which ensures that 
updateTimeout event will go always behind new_saving event. So, should not be 
problem updating in new_saving. In case, new_saving fails, then App it self is 
failed. 

bq. In validateISO8601AndConvertToLocalTimeEpoch, if (expireTime < 
currentTimeMillis) helps to validate timeout's of past. But still there could 
be a delta time from current time to next timeout check thread. Could that also 
to be validated here? Or such entries will be discarded by the monitor thread?
When dealing with milliseconds, there will be delta changes. It should be fine. 
Actually, as user I would expect to update timeout at least with 5minutes gap. 

bq. In general thought and thinking out loud, Map<ApplicationTimeoutType, Long> 
}} why we need a map here. Could we have {{List<ApplicationTimeouts> and each 
ApplicationTimeouts could have its type and real timeout value in long. I am 
not seeing much of benefit from map here as app timeout types could no be more 
than 3/4 atmost.
Good question. There are couple of reason for considering MAP instead of List.
# It is defensive code style, where RM do not want to expect any duplicate 
applicationTimeout types. If we go for List, user is allowed to input duplicate 
timeout types so that RM server need to take decision which one to consider and 
it is debatable topic. Advantage of is MAP is  user send single timeout types. 
It is more clarity for user as well as RM. 
# Populating MAP is much easier in RM. In List, need to look up for all the 
entry correspond to timeoutType. Let say, in new_saving, timeout update is for 
LIFETIME. It is easier to look up and get value in map. But in list, on every 
state need to iterate for all the values and find does LIFETIME exist or not. 




> Provide an API to update lifetime of an application.
> ----------------------------------------------------
>
>                 Key: YARN-5611
>                 URL: https://issues.apache.org/jira/browse/YARN-5611
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: resourcemanager
>            Reporter: Rohith Sharma K S
>            Assignee: Rohith Sharma K S
>              Labels: oct16-hard
>         Attachments: 0001-YARN-5611.patch, 0002-YARN-5611.patch, 
> 0003-YARN-5611.patch, YARN-5611.0004.patch, YARN-5611.0005.patch, 
> YARN-5611.v0.patch
>
>
> YARN-4205 monitors an Lifetime of an applications is monitored if required. 
> Add an client api to update lifetime of an application. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to