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

Reply via email to