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

Zhu Zhu closed FLINK-17019.
---------------------------
    Resolution: Fixed

Done via 
025f4578bab6db632bb8b1e05061bfcb36bbb30b
1b34f18e1ab196397f544cbaf05a947c343e1ac5
b8698c0604ef9da8712007e516e9a348bce67f4d
b5e3c92d047d019ae150895606a13a6de8160a65
01360fe0c6e0ec2dc7be0adadc3b41aa5e3c5fd2
df9a88229b75d9e1adfa9dad6916cd65c3c7d409

> Implement FIFO Physical Slot Assignment in SlotPoolImpl
> -------------------------------------------------------
>
>                 Key: FLINK-17019
>                 URL: https://issues.apache.org/jira/browse/FLINK-17019
>             Project: Flink
>          Issue Type: Sub-task
>          Components: Runtime / Coordination
>    Affects Versions: 1.11.0
>            Reporter: Zhu Zhu
>            Assignee: Zhu Zhu
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.12.0
>
>
> The SlotPool should try to fulfill the oldest pending slot request once it 
> receives an available slot, no matter if the slot is returned by another 
> terminated task or is just offered from a task manager. This naturally 
> ensures that slot requests of an earlier scheduled region will be fulfilled 
> earlier than requests of a later scheduled region.
> We only need to change the slot assignment logic on slot offers. This is 
> because the fields {{pendingRequests}} and {{waitingForResourceManager}} 
> store the pending requests in LinkedHashMaps . Therefore, 
> {{tryFulfillSlotRequestOrMakeAvailable(...)}} will naturally fulfill the 
> pending requests in inserted order.
> When a new slot is offered via {{SlotPoolImpl#offerSlot(...)}} , we should 
> use it to fulfill the oldest fulfillable slot request directly by invoking 
> {{tryFulfillSlotRequestOrMakeAvailable(...)}}. 
> If a pending request (say R1) exists with the allocationId of the offered 
> slot, and it is different from the request to fulfill (say R2), we should 
> update the pendingRequest to replace AllocationID of R1 to be the 
> AllocationID of R2. This ensures failAllocation(...) can fail slot allocation 
> requests to trigger restarting tasks and re-allocating slots. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to