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

ASF GitHub Bot updated FLINK-18751:
-----------------------------------
    Labels: pull-request-available  (was: )

> Implement SlotSharingExecutionSlotAllocator
> -------------------------------------------
>
>                 Key: FLINK-18751
>                 URL: https://issues.apache.org/jira/browse/FLINK-18751
>             Project: Flink
>          Issue Type: Sub-task
>          Components: Runtime / Coordination
>            Reporter: Andrey Zagrebin
>            Assignee: Andrey Zagrebin
>            Priority: Major
>              Labels: pull-request-available
>
> SlotSharingExecutionSlotAllocator maintains a SharedSlot for each 
> ExecutionSlotSharingGroup. SlotSharingExecutionSlotAllocator allocates 
> physical slots for SharedSlot(s) and then allocates logical slots from it for 
> scheduled tasks. In this way, the slot sharing hints can be respected in the 
> ExecutionSlotAllocator. And we no longer need to rely on the SlotProvider to 
> do the slot sharing matching. Co-location constraints will be respected since 
> co-located subtasks will be in the same ExecutionSlotSharingGroup.
> The physical slot will be lazily allocated for a SharedSlot, upon any hosted 
> subtask asking for the SharedSlot. Each subsequent sharing subtask allocates 
> a logical slot from the SharedSlot. The SharedSlot/physical slot can be 
> released only if all the requested logical slots are released or canceled.
> h4. Slot Allocation Process
> When SlotSharingExecutionSlotAllocator receives a set of tasks to allocate 
> slots for, it should do the following:
>  # Map the tasks to ExecutionSlotSharingGroup(s)
>  # Check which ExecutionSlotSharingGroup(s) _already have_ SharedSlot(s)
>  # For all involved ExecutionSlotSharingGroup(s) _which do not have a 
> SharedSlot_ yet:
>  ## Create a SlotProfile future by MergingSharedSlotProfileRetriever and then
>  ## Allocate a physical slot from the PhysicalSlotProvider
>  ## Create SharedSlot based on the returned physical slot futures
>  # Allocate logical slot futures for the tasks from all corresponding 
> SharedSlot(s).
>  # If physical slot future fails, cancel its pending logical slot requests 
> within the SharedSlot
>  # Generates SlotExecutionVertexAssignment(s)  based on the logical slot 
> futures and returns the results.



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

Reply via email to