-
Notifications
You must be signed in to change notification settings - Fork 13.1k
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-12067][network] Refactor the constructor of NetworkEnvironment #8090
Conversation
Thanks a lot for your contribution to the Apache Flink project. I'm the @flinkbot. I help the community Review Progress
Please see the Pull Request Review Guide for a full explanation of the review process. The Bot is tracking the review progress through labels. Labels are applied according to the order of the review items. For consensus, approval by a Flink committer of PMC member is required Bot commandsThe @flinkbot bot supports the following commands:
|
058216c
to
25fc248
Compare
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 for opening this PR @zhijiangW! It should really simplify a lot of things :)
I left one comment.
Also, what do you think if parseNetworkEnvironmentConfiguration
and all related methods are moved into NetworkEnvironmentConfiguration.fromConfiguration
including parsing slots
config?
Just thoughts: at the end, ShuffleService will be created directly from raw configuration in ShuffleManager, so TaskManagerServices.fromConfiguration
might need to take raw configuration and ShuffleManager.
...me/src/main/java/org/apache/flink/runtime/io/network/partition/consumer/SingleInputGate.java
Outdated
Show resolved
Hide resolved
Thanks for reviews and suggestions @azagrebin . |
@azagrebin I submitted two separate fixup commits for addressing above comments. |
06f7e1b
to
8295390
Compare
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 for more refactoring @zhijiangW!
I have left some smaller questions and suggestions.
flink-runtime/src/main/java/org/apache/flink/runtime/io/network/NetworkEnvironment.java
Show resolved
Hide resolved
...time/src/main/java/org/apache/flink/runtime/taskmanager/NetworkEnvironmentConfiguration.java
Show resolved
Hide resolved
flink-runtime/src/main/java/org/apache/flink/runtime/util/ConfigurationParserUtils.java
Outdated
Show resolved
Hide resolved
...time/src/main/java/org/apache/flink/runtime/taskmanager/NetworkEnvironmentConfiguration.java
Outdated
Show resolved
Hide resolved
...time/src/main/java/org/apache/flink/runtime/taskmanager/NetworkEnvironmentConfiguration.java
Outdated
Show resolved
Hide resolved
...me/src/main/java/org/apache/flink/runtime/taskexecutor/TaskManagerServicesConfiguration.java
Show resolved
Hide resolved
...time/src/main/java/org/apache/flink/runtime/taskmanager/NetworkEnvironmentConfiguration.java
Outdated
Show resolved
Hide resolved
...time/src/main/java/org/apache/flink/runtime/taskmanager/NetworkEnvironmentConfiguration.java
Show resolved
Hide resolved
...untime/src/test/java/org/apache/flink/runtime/taskexecutor/NetworkBufferCalculationTest.java
Outdated
Show resolved
Hide resolved
flink-runtime/src/test/java/org/apache/flink/runtime/taskmanager/TaskManagerTest.java
Outdated
Show resolved
Hide resolved
@azagrebin , thanks for review again. :) |
...time/src/main/java/org/apache/flink/runtime/taskmanager/NetworkEnvironmentConfiguration.java
Outdated
Show resolved
Hide resolved
...time/src/main/java/org/apache/flink/runtime/taskmanager/NetworkEnvironmentConfiguration.java
Show resolved
Hide resolved
@azagrebin thanks for review again. I submitted the commit for addressing left comments. |
2461e7b
to
202a353
Compare
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 @zhijiangW ! LGTM 👍
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 took a quite brief look and the change looks good. @zhijiangW could you check one my comment and rebase/resolve the conflicts before I merge it?
...time/src/main/java/org/apache/flink/runtime/taskmanager/NetworkEnvironmentConfiguration.java
Outdated
Show resolved
Hide resolved
@pnowojski , thanks for your review! I have rebased the master to solve the conflicts. |
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 for the change @zhijiangW and review @azagrebin. Merging :)
One remark @zhijiangW, if you are already providing more detailed description of a change in the PR description, please remember about copying it to the commit message as well :) I copied it in this case. |
Thanks for merging and the kindly reminder. I would copy it to the commit next time. :) |
…apache#8090) [FLINK-12067][network] Refactor the constructor of NetworkEnvironment The constructor of NetworkEnvironment was refactored to only contain NetworkEnvironmentConfiguration. The other related components such as TaskEventDispatcher, ResultPartitionManager, NetworkBufferPool are created internally. We also refactor the process of generating NetworkEnvironmentConfiguration in TaskManagerServiceConfiguration to add numNetworkBuffers instead of previous networkBufFraction, networkBufMin, networkBufMax. This way seems more easy and direct to construct NetworkBufferPool later. isCreditBased field is also maintained in this component for considering the setting usage in tests. Further we introduce the NetworkEnvironmentConfigurationBuilder for creating NetworkEnvironmentConfiguration easily especially for tests.
…apache#8090) [FLINK-12067][network] Refactor the constructor of NetworkEnvironment The constructor of NetworkEnvironment was refactored to only contain NetworkEnvironmentConfiguration. The other related components such as TaskEventDispatcher, ResultPartitionManager, NetworkBufferPool are created internally. We also refactor the process of generating NetworkEnvironmentConfiguration in TaskManagerServiceConfiguration to add numNetworkBuffers instead of previous networkBufFraction, networkBufMin, networkBufMax. This way seems more easy and direct to construct NetworkBufferPool later. isCreditBased field is also maintained in this component for considering the setting usage in tests. Further we introduce the NetworkEnvironmentConfigurationBuilder for creating NetworkEnvironmentConfiguration easily especially for tests.
What is the purpose of the change
The constructor of
NetworkEnvironment
could be refactored to only containNetworkEnvironmentConfiguration
, the other related components such asTaskEventDispatcher
,ResultPartitionManager
,NetworkBufferPool
could be created internally.We also refactor the process of generating
NetworkEnvironmentConfiguration
inTaskManagerServiceConfiguration
to addnumNetworkBuffers
instead of previousnetworkBufFraction
,networkBufMin
,networkBufMax
. This way seems more easy and direct to constructNetworkBufferPool
later.isCreditBased
field is also maintained in this component for considering the setting usage in tests.Further we introduce the
NetworkEnvironmentConfigurationBuilder
for creatingNetworkEnvironmentConfiguration
easily especially for tests.Brief change log
NetworkEnvironment
to container only `NetworkEnvironmentConfigurationNetworkEnvironmentConfiguration
Verifying this change
This change is already covered by existing tests, such as NetworkEnvironmentTest and NetworkBufferCalculationTest.
Does this pull request potentially affect one of the following parts:
@Public(Evolving)
: (yes / no)Documentation