[
https://issues.apache.org/jira/browse/FLINK-17019?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Zhu Zhu updated FLINK-17019:
----------------------------
Fix Version/s: (was: 1.11.0)
1.12.0
> 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
> Priority: Major
> 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)