Conversation
ashovlin
requested changes
Sep 14, 2026
Comment on lines
+198
to
+207
| def _is_multipart_chunksize_too_large(self, runtime_config): | ||
| # Only the pool for untuned systems is small enough to reject a | ||
| # configurable chunksize. | ||
| if not self._is_untuned_system(): | ||
| return False | ||
| return ( | ||
| runtime_config.is_explicitly_set('multipart_chunksize') | ||
| and runtime_config['multipart_chunksize'] | ||
| > UNTUNED_MAX_MULTIPART_CHUNKSIZE | ||
| ) |
Member
There was a problem hiding this comment.
Should this consider if the user set an explicit target bandwidth too?
Say I'm running locally, so there isn't a CRT tuning available. I set a > 128MiB chunk size, but also an explicit >10Gbps target bandwidth, wouldn't CRT still be acceptable then?
Contributor
Author
There was a problem hiding this comment.
Fixed via d5d74f0
Instead of attempting to hardcode the max part size and guess whether the configurations/hardware are valid, it just attempts to create the CRT client and catches the part size error and falls back to classic.
hssyoo
force-pushed
the
crt-config/throughput
branch
from
September 15, 2026 18:52
6c25e19 to
d5d74f0
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Conditionally sets a default
target_throughputvalue for the CRT client:get_recommended_throughput_target_gbps().get_recommended_throughput_target_gbps()returnsNone, set it to 4gbps.get_recommended_throughput_target_gbps(), 10gbps).There's an edge case where we need to fall back to the classic transfer manager if the configured
multipart_chunksize > 128MiBand it's a newly eligible host auto-resolving to CRT and there's no recommended throughput for the host. CRT client creation has a guard that ensurespart_size < memory_limit / 2. Since under these conditions we set 4gbps throughput with a 256MiB memory limit, a configured part size of 128MiB will always fail. Instead of dynamically adjusting the memory limit based on part size (potentially regressing on OOM issues), we just fall back to Python.