Investigating sendMessage Latency


#1

Hi all,

I’ve been sending messages (about 400 bytes of data each) through the Nova to the Hologram Cloud and then routing it to my own server for a while now, and I wanted to investigate the average latency experienced by the messages.

Setup:

  1. I use the SGP-M1 / StarHub carriers in Singapore
  2. I send a 360 byte message through the Nova with the Python SDK’s HologramCloud / CustomCloud sendMessage method
  3. I use the time command available on my Ubuntu box to see how long one message send + response reception cycle takes.

Results:

  1. When using HologramCloud (straight to the Hologram servers), my average latency is about 6 seconds
  2. When using CustomCloud (to my own servers, with netcat running to receive the message), my average latency is negligibly less (within a half-second) than the Hologram Cloud messages.
  3. From both endpoints to my local ground control station over standard TCP/IP takes less than a second.

It seems that the bulk of the latency experienced is between the point where sendMessage is called and the reception of the message by the remote server. This means that the latency must either be because of

  • the time taken to prepare a message to leave the Nova or
  • the time taken for the message to transit through the cellular network

I’m looking for ways that I can cut down this 5 - 6 second latency number for each message (I’m sending telemetry data from an unmanned aircraft back to a ground station).

Does anyone know if it’s mainly due to the cellular network or something on the Nova’s / SDK’s end? Do you all get similar latency numbers when sending a message?

Thanks :slight_smile:


#2

Probably not the same thing, but on my Dash when I go into a loop waiting for the modem to connect it takes about 5-6 seconds. This is after waking from a deep sleep and then powering up the modem.


#3

I am pretty sure your own tests prove the issue :wink: sending things to our cloud has to route all the traffic to our servers and back which is less direct than your own sever which I am going to assume is much more local that ours. The time taken for data to leave the modem largely depends on your connection strength and network load etc…

That does raise a good point that we might want to offer a ping feature or something to test latency with that might help us optimize things though routing your messages to a local server will almost always be faster.


#4

Actually I feel that the latency to send something to the Hologram Cloud versus a custom server is pretty much the same - kudos to the Hologram Cloud service on that. I’m more curious about the time taken for the message to leave the dedicated Nova unit that is on my Beaglebone. Perhaps most of the time is spent on the setup of the TCP connection through the cellular network?


#5

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.