[FLINK-36575][runtime] ExecutionVertexInputInfo supports consuming subpartition groups
What is the purpose of the change
Currently, the ExecutionVertexInputInfo describes the task's input through a combination of a PartitionRange and a SubpartitionRange. However, in the case of skewed join optimization, we need to split a group of data corresponding to the specific key, which may result in a downstream task subscribing to multiple combinations of PartitionRanges and SubpartitionRanges.
Therefore, we need to modify the ExecutionVertexInputInfo to describe the input data as multiple combinations of PartitionRanges and SubpartitionRanges to meet the requirements of the aforementioned scenario and improve Flink's flexibility in describing the task's inputs.
Brief change log
- Modify the description of the input in ExecutionVertexInputInfo.
- Modify the connect function for edges.
- Modify the InputGate creation logic of the network layer to adapt to this change.
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, Kubernetes/Yarn, ZooKeeper: (no)
- The S3 file system connector: (yes / no / don't know)
Documentation
- Does this pull request introduce a new feature? (no)
- If yes, how is the feature documented? (not documented)
CI report:
- c9c01bbd073b054f2ca1803bd9a8b2abfc82e83b Azure: SUCCESS
Bot commands
The @flinkbot bot supports the following commands:@flinkbot run azurere-run the last Azure build
@flinkbot run azure
@flinkbot run azure
@JunRuiLee Thanks for review. The PR has been updated based on your comments.