Andrey Zagrebin created FLINK-18751:
---------------------------------------

             Summary: 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


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
 # If physical slot future fails, remove the SharedSlot


 # Allocate logical slot futures for the tasks from all corresponding 
SharedSlot(s).
 # 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