info-beamer

Syncing improvements

#1

What’s device syncing?

Every time you click on Save, switch out a used asset or assign a new setup to one or many of your devices, info-beamer hosted has to sync your devices. When the device is online and connected to the info-beamer service, an updated configuration is created and directly pushed to the device. Additionally the updated configuration is also stored on the storage backend so your device can immediately fetch it later if it happened to be offline while the change was made.

57 million syncs in ~9 months

Syncing happens a lot. In fact currently there’s on average 2-3 sync/second at any time. In total info-beamer hosted pushed around 57 million device syncs to all devices in the last 9 months. Some of those result from updated images or configuration changes made to setups that are installed on hundreds of devices. This means a simple change can result in more than 100 syncs at once.

Syncing has always been asynchronous. There was (and couldn’t) be a guarantee that a change made to a setup is applied there immediately as the device might be offline at that moment or a huge number of sync by other users are still being processed.

A fairer queue

Previously all syncs were treated equally. This wasn’t fair to small installations and often resulted in delayed results being visible on a few devices when interactively modifying their setup: All changes were added to the tail of the sync queue and you had to wait in line. A recent change improved this. Now an (invisible) account-wide stat keeps track of your average syncs/minute. If that passes a certain threshold, your syncs are put into a low priority queue. If you are below that, which is almost always the case if you do interactive changes, your syncs ends up in the normal queue and are processed before syncs from the low priority queue.

The result is that you most likely see changes almost immediately on your devices despite having a lot of other syncs running at all times.