Is there ever a good reason to consider chunk concurrency separately from file concurrency?
I would propose to abandon the separation of --transfers
and --multi-thread-streams
/ --[backend]-upload-concurrency
settings.
Instead, this could be simplified into 3 concurrency settings:
--upload-concurrency 4
- max concurrent streams for upload--download-concurrency 10
- max concurrent streams for download--mixed-concurrency 2,8
- when upload and download is happening at the same time — 2 streams upload, 8 streams download
When rclone has available upload or download streams, it will fill them with either this file's chunk or next file's chunk, no matter what's next.
Chunk settings will still govern how to split large files, so that wouldn't change.
What do you think? Would this simplify code maintenance, user understanding, and RAM usage math?