Recently we found out that some networks use shaping for connections to SAP HANA Cloud. Shaping is not really a surprise but what astonished us was that the speed was limited to 700 KiB per second, making deployment of large archives a problem.
For example we had a case where a 140 MiB archive was uploaded for 1 hour and 30 minutes. This brought back the times when I downloaded Apple //e disks from BBS via 300 kbps modem for 5 hours.
To solve the issue we came back with the idea to use multiple connections and workaround the issue. This required changes in the client (NEO CLI in SAP HANA Cloud SDK) and the server.
Once we had the implementation completed we had the following data from our tests:
The approach we used reduced the deploy time from ~30 minutes to ~3 minutes. As we can see the network in Vancouver can handle up to 8 connections and increasing the number of connection does not make sense since the upload time increases.
The network in Bulgaria allows for up to 3 connections. Even in this network we can see that the transfer rate is increased by increasing the number of connections.
Some networks will terminate the connections if a limit is reached or just hold the transfer until the connections number is under some threshold. Currently this will break the deployment.
When / How can I try this?
We will use 2 connections by default but you will be able to use the --connections parameter when deploying and:
- revert to the old behaviour by specifying 1 connection
- either stick with the default or increase to the maximum allowed 6 connections
We expect this new feature to appear with the next update of SAP HANA Cloud SDK. To check if it is there just try the --connections parameter :)