I noticed that there is now an android CE app. So I got to thinking…
My use case would most likely be running CE on a tablet as a backup for CE running (at the same time) on the boat’s nav PC. That would create a situation where there are multiple (at least two) devices, doing simultaneous access to network stored layer data. And each device is likely to be accessing the same active layer in my account.
Essentially this becomes a distributed multi-client topology, each accessing a common network hosted data store. Once Layers were added, they become the common data access point and the system architecture needs became much more complicated than when all CE instances were independent and there was no network storage of nav data.
Have the implied data access sync mechanisms been implemented?
Consider two CE instances, both writing tracks to the same layer - will this work w/o data corruption / conflicts? Or will one instance overwrite the other?
Have the many combinations been thought thru? Things Like N devices simultaneously? How about partial, unpredictable data access scenarios where one or more devices that access a layer can power on.off or just go on/off line?
Inquiring minds would like to know…
Yes. The synchronization mechanism treats each navigation object (mark, route, etc) as an independent entity. If multiple devices are recording tracks, each of those tracks is independent of the others, even if they are in the same layer, and they will not interfere with each other. When the systems are online, they should see each others tracks as they are recorded. If they are not online during the recording but go online later, then they will each get the other tracks then.
Systems going on and offline don’t cause problems even in the middle of synchronizing; they may only get some of the changes before going offline, but they’ll pick up the rest the next time they are online.
Of course it is possible to create conflicting changes when offline, such as modifying a mark in different ways on two offline systems. In situations like this, one of the changes will be kept and other changes will not. Since each object is kept separate, changes are only lost when the same object is modified on multiple systems while offline, and only changes to that object are lost (which is significantly better than using DropBox or OneDrive where the storage unit is an entire layer of objects, not just a single one).
Hi, thanks for the info. That sounds good - I think I’ll give the android app a try.