-
Notifications
You must be signed in to change notification settings - Fork 278
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
Adopt distributed version Bucket4j for huge request rate on single key #90
Labels
Projects
Comments
vladimir-bukhtoyarov
added a commit
that referenced
this issue
Sep 22, 2019
vladimir-bukhtoyarov
added a commit
that referenced
this issue
Sep 22, 2019
vladimir-bukhtoyarov
pushed a commit
that referenced
this issue
Oct 2, 2019
vladimir-bukhtoyarov
pushed a commit
that referenced
this issue
Oct 7, 2019
vladimir-bukhtoyarov
pushed a commit
that referenced
this issue
Oct 7, 2019
vladimir-bukhtoyarov
pushed a commit
that referenced
this issue
Oct 16, 2019
vladimir-bukhtoyarov
pushed a commit
that referenced
this issue
Oct 17, 2019
vladimir-bukhtoyarov
pushed a commit
that referenced
this issue
Oct 17, 2019
vladimir-bukhtoyarov
pushed a commit
that referenced
this issue
Oct 17, 2019
vladimir-bukhtoyarov
pushed a commit
that referenced
this issue
Oct 18, 2019
vladimir-bukhtoyarov
pushed a commit
that referenced
this issue
Oct 18, 2019
vladimir-bukhtoyarov
changed the title
Adopt distributed version Bucket4j for huge request rate
Adopt distributed version Bucket4j for huge request rate on single key
Oct 27, 2019
vladimir-bukhtoyarov
added a commit
that referenced
this issue
Oct 27, 2019
…e Hazelcast bucket with 100 concurrent threads
vladimir-bukhtoyarov
pushed a commit
that referenced
this issue
Oct 28, 2019
vladimir-bukhtoyarov
pushed a commit
that referenced
this issue
Nov 12, 2019
…equests per second with asynchronous buckets and Hazelcast
vladimir-bukhtoyarov
pushed a commit
that referenced
this issue
Jan 9, 2020
…equests per second with asynchronous buckets and Hazelcast
vladimir-bukhtoyarov
pushed a commit
that referenced
this issue
Jan 10, 2020
vladimir-bukhtoyarov
pushed a commit
that referenced
this issue
Jan 10, 2020
vladimir-bukhtoyarov
added a commit
that referenced
this issue
Jan 10, 2020
vladimir-bukhtoyarov
moved this from In-progress
to Implemented
in 7.0 - Conquer the world
Mar 7, 2020
vladimir-bukhtoyarov
added a commit
that referenced
this issue
Jul 28, 2020
vladimir-bukhtoyarov
added a commit
that referenced
this issue
Jul 28, 2020
vladimir-bukhtoyarov
added a commit
that referenced
this issue
Jul 29, 2020
vladimir-bukhtoyarov
added a commit
that referenced
this issue
Jul 30, 2020
vladimir-bukhtoyarov
added a commit
that referenced
this issue
Jul 30, 2020
vladimir-bukhtoyarov
added a commit
that referenced
this issue
Jul 30, 2020
vladimir-bukhtoyarov
added a commit
that referenced
this issue
Jul 31, 2020
vladimir-bukhtoyarov
added a commit
that referenced
this issue
Aug 1, 2020
vladimir-bukhtoyarov
added a commit
that referenced
this issue
Aug 7, 2020
Implementation has been done, documentation will be created in the scope of #69 |
vladimir-bukhtoyarov
added a commit
that referenced
this issue
Nov 2, 2020
…it-tests for concurrent scenarios
vladimir-bukhtoyarov
moved this from Implemented
to Documented
in 7.0 - Conquer the world
Feb 10, 2022
vladimir-bukhtoyarov
moved this from Documented
to Implemented
in 7.0 - Conquer the world
Feb 10, 2022
This comment was marked as abuse.
This comment was marked as abuse.
vladimir-bukhtoyarov
moved this from Implemented
to Documented
in 7.0 - Conquer the world
Sep 7, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Problem:
Because Bucket4j makes a new network request to backend on each limitation check the Bucket4j it is not well suitable for cases when the request rate is huge(tens thouthands per second), because remote backend becomes become a bottleneck.
Solution:
Hold bucket state locally on each node and sync consumed tokens periodically with a configured interval. Be aware of consumption rate inside cluster.
Ideas for implementation:
The algorithms are well described in research articles for example:
Cloud Control with Distributed Rate Limiting Barath Raghavan, Kashi Vishwanath, Sriram Ramabhadran, Kenneth Yocum, and Alex C. Snoeren. Department of Computer Science and Engineering University of California, San Diego
Limitations:
Acting in this way may break consistency, so activation of this mode should be optional.
The text was updated successfully, but these errors were encountered: