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

Jian He edited comment on YARN-4138 at 12/15/15 1:06 AM:
---------------------------------------------------------

{code}
    SchedContainerChangeRequest decreaseRequest =
        new SchedContainerChangeRequest(
            schedulerNode, rmContainer,
                rmContainer.getLastConfirmedResource());
    decreaseContainer(decreaseRequest,
        getCurrentAttemptForContainer(containerId));
{code}
- this scenario may cause resource accounting wrong,  correct me if I'm wrong:
1) AM asks increase 2G -> 8G
2) AM does not increase the container, and asks decrease to 1G
3) LastConfirmedResource becomes 1G
4) In the meantime, containerIncreaseExpiration logic is triggered and 
rollbackContainerResource is invoked. In this case the resource Delta becomes 
positive even in decrease case, but some code is assuming the decrease to be 
negative, which may cause resource accounting wrong ?
{code}
    // Delta capacity is negative when it's a decrease request
    Resource absDelta = Resources.negate(decreaseRequest.getDeltaCapacity());
{code}
-  I have a question about the API semantics for the above mentioned scenario. 
According to the AMRMClient#requestContainerResourceChange API, the previous 
pending resource-change-request should be cancelled.  Essentially, the 
semantics is a setter API.  In that sense, the previous 8G should be cancelled. 
With this approach, both resource-change-requests are cancelled. That is,10 min 
later after the expiration is triggered, user will suddenly see its container 
decreased to 2 GB. will this confuse the user ?
- revert format only changes in RMContainerChangeResourceEvent




was (Author: jianhe):
{code}
    SchedContainerChangeRequest decreaseRequest =
        new SchedContainerChangeRequest(
            schedulerNode, rmContainer,
                rmContainer.getLastConfirmedResource());
    decreaseContainer(decreaseRequest,
        getCurrentAttemptForContainer(containerId));
{code}
- this scenario may cause resource accounting wrong,  correct me if I'm wrong:
1) AM asks increase 2G -> 8G
2) AM does not increase the container, and asks decrease to 1G
3) LastConfirmedResource becomes 1G
4) In the meantime, containerIncreaseExpiration logic is triggered and 
rollbackContainerResource is invoked. In this case the resource Delta becomes 
positive even in decrease case, but some code is assuming the decrease to be 
negative, which may cause resource accounting wrong ?
{code}
    // Delta capacity is negative when it's a decrease request
    Resource absDelta = Resources.negate(decreaseRequest.getDeltaCapacity());
{code}
-  I have a question about the API semantics for the above mentioned scenario. 
According to the AMRMClient#requestContainerResourceChange API, the previous 
pending resource-change-request should be cancelled.  Essentially, the 
semantics is a setter API.  In that sense, the previous 8G should be cancelled. 
With this approach, both resource-change-requests are cancelled. That is,10 min 
later after the expiration is triggered, user will suddenly see its container 
decreased to 2 GB. will this confuse the user ?
- revert  RMContainerChangeResourceEvent



> Roll back container resource allocation after resource increase token expires
> -----------------------------------------------------------------------------
>
>                 Key: YARN-4138
>                 URL: https://issues.apache.org/jira/browse/YARN-4138
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: api, nodemanager, resourcemanager
>            Reporter: MENG DING
>            Assignee: MENG DING
>         Attachments: YARN-4138-YARN-1197.1.patch, YARN-4138-YARN-1197.2.patch
>
>
> In YARN-1651, after container resource increase token expires, the running 
> container is killed.
> This ticket will change the behavior such that when a container resource 
> increase token expires, the resource allocation of the container will be 
> reverted back to the value before the increase.



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

Reply via email to