Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Add simple pod updates batching to endpoint controller. #80509
What type of PR is this?
What this PR does / why we need it:
This PR adds a mechanism to reduce number of generated endpoints updates in cost of increased network programming latency.
Which issue(s) this PR fixes:
Special notes for your reviewer:
Does this PR introduce a user-facing change?:
Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:
Jul 24, 2019
thockin left a comment
This is a simple change. It doesn't seem to reduce the amount of work that the controller does (e.g. by noticing that an update was already queued) but it will result in more no-op results, I guess.
If the intent is really O(100ms) windows it is probably fine. My mind immediately went to something more complicated, e.g. wait 1/2 window, if any updates arrived, wait 1/2 of that, etc. That would give a more dynamic window such that busy systems tend to batch more. But it's a lot more complicated.
[APPROVALNOTIFIER] This PR is APPROVED
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
Jul 27, 2019
23 checks passed
Exactly - the goal was to not reduce amount of work done by endpoints controller, but amount of Endpoints objects changes that has to be then sent to all kube-proxies.
My motivation for proceeding with this approach is that we can always change the implementation if it appears that we really need something more sophisticated. But having something is better than nothing and this one is simple enough that in my opinion it's worth proceeding with it.
Thanks @thockin !