-
Notifications
You must be signed in to change notification settings - Fork 519
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
Add Throttle Support #743
Comments
Hi @Xuanwo, I'm interested in this issue, but I need more information. For example, is the goal to limit the amount of data that OpenDAL can send over the network in a given time period (e.g. |
Thanks for your interest!
This issue want to address this so that users can limit the bandwidth to 100Mbps and so on. |
So I just did a quick survey of existing Rust crates. There are different kinds of bandwidth limit algorithms, the most common one being "Token Bucket", and another being "Leaky Bucket".
Both seem to support asynchronous. Do we have any existing preferences? |
Thanks a lot for the research!
|
Sounds good. The governor supports two types of limiters: "direct" and "keyed".
Currently, I am unsure how to implement the Keyed Limiter as it requires interaction with the throttle layer state after building the Operator. Should I first try implementing the Direct Limiter, as all operations under an operator share an Atomic Limiter? |
LGTM! And we don't need to implement keyed support until we have user's feature request. |
Mostly DONE! Thanks @morristai, we can polish this layer when new feature requested. |
ThrottleLayer can help users to control the max bandwidth that used by OpenDAL.
The text was updated successfully, but these errors were encountered: