5 | | * When uploading the 2000 byte file, upload time was 300ms, and download was 300ms. |
6 | | * When uploading a 2MB file, upload time was 300ms, and download time was 3200ms. |
| 5 | * When uploading the 2000 byte file, upload time was 300ms (30ms CPU), and download was 300ms (65ms CPU). |
| 6 | * When uploading a 2MB file, upload time was 700ms (70ms are CPU), and download time was 3200ms (680ms is CPU). |
| 7 | * For 20MB file: upload 3,550ms (CPU 600ms), download 31,200ms (6,200ms CPU). |
10 | | * Immutable uploads use parallelism, and main bottleneck is latency, which only impacts small files. However, sequential uploads will have minimal time no matter what the bandwidth. |
11 | | * Immutable downloads have a latency hit, but even worse are not utilizing parallelism well, so large files suffer from latency hit even when bandwidth is not a bottleneck. |
| 11 | So at first glance: |
| 12 | |
| 13 | * Immutable uploads use parallelism, and main bottleneck is latency. Upload time is not linear with size, . However, sequential uploads will have minimal time no matter what the bandwidth. |
| 14 | * Immutable downloads have a massive latency hit, probably due to not utilizing parallelism well, so large files suffer from latency hit even when bandwidth is not a bottleneck. Also using a lot of CPU. |