feat: add concurrency limit for grpc server #982
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This pull request introduces new rate limiting features for the download and upload gRPC servers in the
dragonfly-client-config
and makes associated updates to thedragonfly-client
codebase. The most important changes include adding default rate limits, updating server structures to include these limits, and incorporating theServiceBuilder
to apply concurrency limits and load shedding.Rate Limiting Features:
dragonfly-client-config/src/dfdaemon.rs
: Added functionsdefault_download_request_rate_limit
anddefault_upload_request_rate_limit
to define default rate limits for download and upload requests. UpdatedDownloadServer
andUploadServer
structs to includerequest_rate_limit
fields with default values. [1] [2] [3] [4] [5]Dependency Updates:
dragonfly-client/Cargo.toml
: Updated thetower
dependency to include additional features:limit
,load-shed
, andbuffer
.Codebase Updates:
dragonfly-client/src/grpc/dfdaemon_download.rs
: ModifiedDfdaemonDownloadServer
to include theconfig
field, and usedServiceBuilder
to apply concurrency limits and load shedding in the gRPC server setup. [1] [2] [3] [4] [5]dragonfly-client/src/grpc/dfdaemon_upload.rs
: IncorporatedServiceBuilder
to apply concurrency limits and load shedding in the gRPC server setup for the upload server. [1] [2] [3]Related Issue
dragonflyoss/dragonfly#3811
Motivation and Context
Screenshots (if appropriate)