Jian He commented on YARN-3983:

- {{AllocationState}} format 
- applicationContainerAllocator-> containerAllocator
- simplify a bit
    // Only reset opportunities when we FIRST allocate the container. (When
    // reservedContainer != null, it's not the first time) 
    if ((allocationResult.state == AllocationState.Allocated || 
        allocationResult.state == AllocationState.Reserved)
        && reservedContainer == null) {
- schedulingMode and clusterResource parameters not used
private ContainerAllocation handleNewContainerAllocation(
      ContainerAllocation allocationResult, Resource clusterResource,
      FiCaSchedulerNode node, SchedulingMode schedulingMode, Priority priority,
      RMContainer reservedContainer, Container container) {

> Make CapacityScheduler to easier extend application allocation logic
> --------------------------------------------------------------------
>                 Key: YARN-3983
>                 URL: https://issues.apache.org/jira/browse/YARN-3983
>             Project: Hadoop YARN
>          Issue Type: Bug
>            Reporter: Wangda Tan
>            Assignee: Wangda Tan
>         Attachments: YARN-3983.1.patch, YARN-3983.2.patch, YARN-3983.3.patch
> While working on YARN-1651 (resource allocation for increasing container), I 
> found it is very hard to extend existing CapacityScheduler resource 
> allocation logic to support different types of resource allocation.
> For example, there's a lot of differences between increasing a container and 
> allocating a container:
> - Increasing a container doesn't need to check locality delay.
> - Increasing a container doesn't need to build/modify a resource request tree 
> - Increasing a container doesn't need to check allocation/reservation 
> starvation (see {{shouldAllocOrReserveNewContainer}}).
> - After increasing a container is approved by scheduler, it need to update an 
> existing container token instead of creating new container.
> And there're lots of similarities when allocating different types of 
> resources.
> - User-limit/queue-limit will be enforced for both of them.
> - Both of them needs resource reservation logic. (Maybe continuous 
> reservation looking is needed for both of them).
> The purpose of this JIRA is to make easier extending CapacityScheduler 
> resource allocation logic to support different types of resource allocation, 
> make common code reusable, and also better code organization.

This message was sent by Atlassian JIRA

Reply via email to