Sending large blocks of data with a stream system - is Photon throttling transfer rate ?
We have an app in development which is a collaborative 3D design tool in VR and I have been working on the network side for more than 6 months now using Photon.
We use PhotonRealtime and PhotonVoice and both have a 100 CCU plan.
Right now we are in Alpha and we are very far from reaching the limits, I'm mostly doing tests locally with 2 computers and few tests with the rest of the team all over the world.
So we use Photon to send the following messages :
- Avatar states (very little data, 15 times per second)
- Modelling data (i will not enter in detail here, but we are doing simultaneous multi user editing, so it can get a bit complex, but the data is very small too, messages also sent at 15 times per second)
- 3D and texture resource upload/download, and this can be big data (several MB)
So for our resource system we basically have users than can bring in resources from their local drive and all users will eventually receive them.
Of course we are aware that Photon might not be very well suited for sending large amount of data, and that synchronization from the Cloud might be a better solution, but still, we are trying to push as much as we can using Photon in the light of trying to get our product to the market quickly.
So here is the problem.
We have developped a streaming system, and basically what it is doing is splitting a chunk of data into slices, and sending these slices over, while making sure that not more that X amount of data is in flight (using an reception acknowledgment mechanism), so we dont reach the limit on the server client buffer.
And this seems to be working well, but the transfer rates are extremely slow, and here are the finding :
- Splitting a chunk in slices of 1KB : quite a reliable transfer, upload speed 10KB/second
- Splitting a chunk in slices of 10KB : slices sometimes take more than 10 sec to arrive
I tried all settings from slices of 1KB to slices of 10KB, with a flight windows of 50KB to 400KB, and in all cases i can never reach an upload rate of more than about 10KB/second (on top of what we already send, which is very small), and as soon as the slide goes above 1KB. they can take ages to be transferred over.
Of course there could be a bug in our system, and something i dont see at the moment, but is what i try to describe an expected behaviour ?
I must mention that we use 4 SequenceChannels if that makes any difference.
All the best,