## What is the purpose of the change This PR adds support for multi task slot TaskExecutors to Flink. Before it was recommended to start a Flink cluster with single slot `TaskExecutors`. Now also multi slot `TaskExecutors` can be configured and Flink won't allocate resources over-excessively.
## Brief change log - Extend `ResourceActions#allocateResource` to return `Collection<ResourceProfile>` indicating the set of slots to expect - Store expected slots as `PendingTaskManagerSlot` - Use `PendingTaskManagerSlot` to fulfill `PendingSlotRequest` - Only ask for new resources if there are no more `TaskManagerSlots` and `PendingTaskManagerSlots` ## Verifying this change - Added `SlotManagerTest#`: `testRequestNewResources`, `testFailingAllocationReturnsPendingTaskManagerSlot`, `testPendingTaskManagerSlotCompletion`, `testRegistrationOfDifferentSlot`, `testOnlyFreeSlotsCanFulfillPendingTaskManagerSlot`, ## Does this pull request potentially affect one of the following parts: - Dependencies (does it add or upgrade a dependency): (no) - The public API, i.e., is any changed class annotated with `@Public(Evolving)`: (no) - The serializers: (no) - The runtime per-record code paths (performance sensitive): (no) - Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (**yes**) - The S3 file system connector: (no) ## Documentation - Does this pull request introduce a new feature? (no) - If yes, how is the feature documented? (not applicable) [ Full content available at: https://github.com/apache/flink/pull/6734 ] This message was relayed via gitbox.apache.org for [email protected]
