-
Notifications
You must be signed in to change notification settings - Fork 719
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
controller: fix limiter cannot work well in high concurrency scenario #8436
Conversation
Signed-off-by: nolouch <[email protected]>
f267149
to
7233b1d
Compare
Signed-off-by: nolouch <[email protected]>
7233b1d
to
d3ab23b
Compare
Signed-off-by: nolouch <[email protected]>
Signed-off-by: nolouch <[email protected]>
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #8436 +/- ##
==========================================
+ Coverage 77.24% 77.31% +0.06%
==========================================
Files 471 471
Lines 61696 61925 +229
==========================================
+ Hits 47660 47879 +219
- Misses 10454 10467 +13
+ Partials 3582 3579 -3
Flags with carried forward coverage won't be shown. Click here to find out more. |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: HuSharp, JmPotato 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 |
@nolouch: The following test failed, say
Full PR test history. Your PR dashboard. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
In response to a cherrypick label: new pull request created to branch |
…#8436) (#8437) close #8435 controller: Fix limiter not functioning well in high concurrency scenarios - In high concurrency scenarios, time may appear rollback because the `now` value passed from outside. high mutext completion leading to more non-sequential execution orders. - Time rollback allows advancing more tokens, which can cause the issue. even result in no limit for the controller. - Fix the problem by avoiding time rollback; instead of acquiring time again within the lock to fix it, as this might incur high costs when frequently acquiring time. Signed-off-by: nolouch <[email protected]> Co-authored-by: nolouch <[email protected]>
In response to a cherrypick label: new pull request created to branch |
In response to a cherrypick label: new pull request created to branch |
…#8436) (#8438) close #8435 controller: Fix limiter not functioning well in high concurrency scenarios - In high concurrency scenarios, time may appear rollback because the `now` value passed from outside. high mutext completion leading to more non-sequential execution orders. - Time rollback allows advancing more tokens, which can cause the issue. even result in no limit for the controller. - Fix the problem by avoiding time rollback; instead of acquiring time again within the lock to fix it, as this might incur high costs when frequently acquiring time. Signed-off-by: nolouch <[email protected]> Co-authored-by: nolouch <[email protected]>
…#8436) (#8439) close #8435 controller: Fix limiter not functioning well in high concurrency scenarios - In high concurrency scenarios, time may appear rollback because the `now` value passed from outside. high mutext completion leading to more non-sequential execution orders. - Time rollback allows advancing more tokens, which can cause the issue. even result in no limit for the controller. - Fix the problem by avoiding time rollback; instead of acquiring time again within the lock to fix it, as this might incur high costs when frequently acquiring time. Signed-off-by: nolouch <[email protected]> Co-authored-by: nolouch <[email protected]>
What problem does this PR solve?
Issue Number: Close #8435
What is changed and how does it work?
Check List
Tests
real workload
Release note