Skip to content
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

User-facing throttling mechanism #51

Open
graebm opened this issue Sep 17, 2024 · 0 comments
Open

User-facing throttling mechanism #51

graebm opened this issue Sep 17, 2024 · 0 comments
Assignees

Comments

@graebm
Copy link
Contributor

graebm commented Sep 17, 2024

The transfer manager should offer some API to help users submit the right amount of concurrent objects.

If a user has millions of objects to upload, they can't start work on all of them at once. There needs to be some mechanism to throttle the amount of concurrent work. Otherwise, users will just use a semaphore with some magic number (100? 1000?), and that number might end up as the bottleneck.

aws-c-s3 lacks this feature, and it's been an issue. Different transfer managers that use aws-c-s3 have picked different magic numbers, like 128. But in a workload like "download 10,000 256KiB files", 128 is a major bottleneck. Each object will only require 1 HTTP request, so higher concurrency allows for much higher throughput.

@graebm graebm self-assigned this Oct 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant