azagrebin opened a new pull request #13071:
URL: https://github.com/apache/flink/pull/13071
`SlotSharingExecutionSlotAllocator` maintains a `SharedSlot` for each
`ExecutionSlotSharingGroup`. `SlotSharingExecutionSlotAllocator` allocates
physical slots for `SharedSlot(s)` and then allocates logical slots from it for
scheduled tasks.
The physical slot is 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.
When `SlotSharingExecutionSlotAllocator` receives a set of tasks to allocate
slots for, it does 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 is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]