-
Notifications
You must be signed in to change notification settings - Fork 533
feat: make concurrency of the worker configurable #1400
feat: make concurrency of the worker configurable #1400
Conversation
Welcome @zqzten! |
@hectorj2f Mind take a look? Advice on further design is needed. |
I'd prefer the first piece of advice. How do we define the |
I agree that configuring sync controller for each type in |
6225d40
to
f53825e
Compare
4affcc7
to
9308c18
Compare
To keep it simple as well as extendable, currently I exposed the Other concurrency settings can alse be exposed in the |
@jimmidyson @makkes This PR is ready for review. |
/cc @hectorj2f |
@zqzten Could you highlight the performance benefits of this solution ? and why would you propose these changes ? |
@hectorj2f We are using KubeFed in some large-scale cluster management cases, such as a public cloud service. It's common that operations on some clusters may take a long time (or even timeout) and block the controller processing resources belong to other users' clusters. Increasing the concurrency of sync controller mitigated this problem because now it has chance to process other resources on the fly. In addition, it's apparent that properly increase the concurrency of a controller can improve its performance because it can simply process more events at the same time. The |
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.
@zqzten Thanks for the explanation. @irfanurrehman @jimmidyson Do you have any concerns about these properties ?
9308c18
to
ba81f5a
Compare
ba81f5a
to
661df5d
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 @zqzten for doing this.
/lgtm
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: irfanurrehman, jimmidyson, zqzten The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
What this PR does / why we need it:
As to gain better performance on different reconciliations, the concurrency of worker should be made configurable for different controllers.
In short, this PR does two things below:
MaxConcurrentReconciles
option to worker for inner controller concurrency settings.Concurrency
section to KubeFedConfg to expose the concurrency settings to users.Which issue(s) this PR fixes:
Fixes #1392