objectLoaderClampedPartSizeBytes

@Singleton
@Named(value = "objectLoaderClampedPartSizeBytes")
@Requires(bean = ObjectLoader::class)
fun objectLoaderClampedPartSizeBytes(@Named(value = "objectLoaderPartQueue") queue: ResourceReservingPartitionedQueue<*>, @Named(value = "dataChannelMedium") dataChannelMedium: DataChannelMedium, @Named(value = "dataChannelSocketPaths") dataChannelSocketPaths: List<String>): Long

If we naively accept the part size and concurrency settings, we might end up with a connector that passes CI but can't run in a resource-limited production environment, because there isn't enough memory even for the workers to hold parts in flight.

Therefore, we will always clamp the part size to fit the available memory. This might still lead to runtime failures (ie, if it drops below a storage-client-specified minimum), but it is much less likely.