[ 
https://issues.apache.org/jira/browse/TEZ-2808?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bikas Saha updated TEZ-2808:
----------------------------
    Description: 
New container allocated. Put in delayed container manager queue. Triggers 
assignment run on delayed container manager thread. 
On AMRMClient thread callback, preemption is called. This is to ensure 
preemption logic is guaranteed to be invoked at regular intervals even though 
nothing else may be happening because there are no containers 
allocated/to-match. Preemption logic checks if containers are available to 
assign by looking at delayed container manager queue. If by this time, the 
assignment thread has polled the queue to remove the container for assignment 
checking, then the preemption code will see no containers available to assign. 
So it proceeds to preempt containers.

  was:
New container allocated. Put in delayed container manager queue. Triggers 
assignment run on delayed container manager thread. 
On AMRMClient thread callback, preemption is called. This is to ensure 
preemption logic is guaranteed to be invoked at regular intervals even though 
nothing else may be happening because there are no containers 
allocated/to-match. Preemption logic checks is new containers have been 
allocated by looking at delayed container manager queue. If by this time, the 
assignment thread has polled the queue to remove the container for assignment 
checking, then the preemption code will see 


> Race condition between preemption and container assignment
> ----------------------------------------------------------
>
>                 Key: TEZ-2808
>                 URL: https://issues.apache.org/jira/browse/TEZ-2808
>             Project: Apache Tez
>          Issue Type: Bug
>            Reporter: Bikas Saha
>            Assignee: Bikas Saha
>
> New container allocated. Put in delayed container manager queue. Triggers 
> assignment run on delayed container manager thread. 
> On AMRMClient thread callback, preemption is called. This is to ensure 
> preemption logic is guaranteed to be invoked at regular intervals even though 
> nothing else may be happening because there are no containers 
> allocated/to-match. Preemption logic checks if containers are available to 
> assign by looking at delayed container manager queue. If by this time, the 
> assignment thread has polled the queue to remove the container for assignment 
> checking, then the preemption code will see no containers available to 
> assign. So it proceeds to preempt containers.



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

Reply via email to