Hi Krzysztof, I agree with you that sometimes one may want to break chains so there's value in supporting overriding parallelisms for individual operators. However, the config pipeline.jobvertex-parallelism-overrides is added in the context of support Flink autoscaling. For autoscaling, we don't want to break checkpoint compatibility but chain-breaking might break that, and it becomes natural to support only job-vertex level parallelism overriding for that. You can issue a new JIRA to extend Flink for your use case for further discussion.
Best, Zhanghao Chen ________________________________ 发件人: Krzysztof Chmielewski <krzysiek.chmielew...@gmail.com> 发送时间: 2023年8月25日 17:17 收件人: Hang Ruan <ruanhang1...@gmail.com> 抄送: liu ron <ron9....@gmail.com>; user <user@flink.apache.org> 主题: Re: How to use pipeline.jobvertex-parallelism-overrides property. Hi, thank you for replaying. Hang Ruan, regarding: " If they have different parallelisms, we cannot chain them together." <- that is clear for me. What I'm still not sure about is if " JobVertexId#toHexString" that should be used as key of pipeline.jobvertex-parallelism-overrides map is vertex of a graph before or after Flink chained the operators? In my use case actually I would like to "scoop out" individual operator from chained task. pt., 25 sie 2023 o 10:07 Hang Ruan <ruanhang1...@gmail.com<mailto:ruanhang1...@gmail.com>> napisał(a): Hi, Krzysztof. As liu ron said, the key of the map for this configuration is the value from JobVertexId#toHexString. Maybe we could improve the docs to provide more details. The condition that two operators have the same parallelism is a must for chaining them. If they have different parallelisms, we cannot chain them together. Best, Hang liu ron <ron9....@gmail.com<mailto:ron9....@gmail.com>> 于2023年8月25日周五 09:34写道: Hi, Krzysztof As stated in the description section, this option is used to override the parallelism of a JobVertex, where the key is JobVertex id, you can see [1] for double check. A JobVertex may contain more than one operator, so we cannot override the parallelism of a given operator alone. One possible solution to your problem is to leave Map1 and Map2 unchained and put them into two Vertexes so that they can override their parallelism separately. [1] https://github.com/apache/flink/blob/b3fb1421fe86129a4e0b10bf3a46704b7132e775/flink-runtime/src/main/java/org/apache/flink/runtime/dispatcher/Dispatcher.java#L1591 Best, Ron Krzysztof Chmielewski <krzysiek.chmielew...@gmail.com<mailto:krzysiek.chmielew...@gmail.com>> 于2023年8月24日周四 20:08写道: Hi, have someone used pipeline.jobvertex-parallelism-overrides [1] property? I wonder what actually should be a key here? Operator name? What if my operators are chained and I want to override only one of its elements. For example Source -> (Map1 chained with Map2) -> Sink. Can I override Map2 only, keeping Map1 as is? If not, what should be used as key for this chained Map1/Map2 operator then? Thanks. [1] https://nightlies.apache.org/flink/flink-docs-master/docs/deployment/config/#pipeline-jobvertex-parallelism-overrides