New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FLINK-35165][runtime/coordination] AdaptiveBatch Scheduler should not restrict the default source parall… #24736
base: master
Are you sure you want to change the base?
Conversation
…elism to the max parallelism set
cc @SinBex and @JunRuiLee for reviews. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks to Venkata for creating this PR. I have some comments, please take a look.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We might need to verify the following case: when source vertex does not have maxParallelism
set and the defaultSourceParallelism
is greater than the globalMaxParallelism
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I feel that simply making changes here might not be adequate. We need to also consider the logic of the method AdaptiveBatchScheduler#computeVertexParallelismStoreForDynamicGraph
. Imagine, when the source vertex uses globalMaxParallelism as its maxParallelism, if the inferred source parallelism is greater than the maxParallelism, then the method DefaultVertexParallelismInfo#setParallelism
will throw an IllegalArgumentException.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, @venkata91, for your contribution! After reviewing this PR, I'm concerned that it entirely removes limit that source parallelism should lower than source jobVertex's max parallelism. And I think the goal of this pr is ensure source parallelism isn't limited by config option execution.batch.adaptive.auto-parallelism.max-parallelism, but still respects the max parallelism of source jobVertex.
WDYT?
I think that makes sense. Basically what you're saying is if |
Yes, that's correct. |
…elism to the max parallelism set
What is the purpose of the change
With AdaptiveBatchScheduler, the current behavior is if both
execution.batch.adaptive.auto-parallelism.default-source-parallelism
andexecution.batch.adaptive.auto-parallelism.max-parallelism
configurations are specified and if theexecution.batch.adaptive.auto-parallelism.default-source-parallelism
is greater than theexecution.batch.adaptive.auto-parallelism.max-parallelism
, the source parallelism is bounded toexecution.batch.adaptive.auto-parallelism.max-parallelism
.For eg: In the case of, "High filter selectivity with huge amounts of data to read", this has the following issues:
Setting high "execution.batch.adaptive.auto-parallelism.max-parallelism" requires careful tuning of network buffer configurations which is unnecessary in cases where it is not required just so that the source parallelism can be set high.
The proposed solution is to decouple the configs
execution.batch.adaptive.auto-parallelism.default-source-parallelism
andexecution.batch.adaptive.auto-parallelism.max-parallelism
and not bound the value of source parallelism toexecution.batch.adaptive.auto-parallelism.max-parallelism
.Verifying this change
This change is already covered by existing tests, such as (please describe tests).
Does this pull request potentially affect one of the following parts:
@Public(Evolving)
: (yes / no)Documentation