Sia Throughput Bottleneck
There is a throughput bottleneck somewhere in Sia. In this issue i want to elaborate why this is a problem worth solving sooner rather than later, primarily to support 3rd party projects building on Sia with enterprise uses cases in mind, like StoreWise.
Observations have shown through both siad
and us
that the maximum throughput per host is around ~38 Mb/s
. This is the case even if the host's network is capable of 26.3x
that speed (1 Gb/s). This poses a substantial problem for developers with enterprise in mind.
- This limit causes extensive under-utilization of the host's bandwidth capabilities. Meaning that even if a few hosts have vastly better performance and uptime metrics than the vast majority of other hosts, it will not be possible to take advantage of these hosts.
- It forces developers to spend more funds to create more contracts with more hosts as a workaround. This is cumbersome, expensive, difficult to manager and creates unnecessary overhead.
- Most importantly, it prevents 3rd party solutions from achieving enterprise grade, industry standard, throughput requirements (1 Gb/s - 10 Gb/s).
What causes this impediment is unclear but here are some ideas;
- Both
siad
&us
display the same behavior during upload and download thus the chance of it being the result of the upload process is quite low. - Encryption & Merkle Tree calculations should be orders of magnitude faster than the bandwidth barrier observed here.
- Transferring multiple sectors in parallel does not appear to have any real effect.
- There is a possibility (potentially) that 4 MB sectors are too small for the transfer from the host to reach full throughput. This should be tested.
Actions:
From discussion with the Sia team it was agreed upon that doing a closed-system local test with Sia renters and hosts could expose at a very minimum where the problem occurs.