Couchbase synchronization in embedded systems


I am mainly oriented in embedded systems based on Linux. I want to set up a lab environment for embedded device designed for monitoring purposes (that is why the “C SDK” I have chosen).

I want to ask about possible guidelines and architecture (references are enough for me) for the following concept:

the smaller databases that resides in embedded device running Linux should periodically “push” its data to remote server. However, this kind of synchronization shall be only one-way, as the server will receive copies from multiple nodes.
So the server in the end shall be capable of fetching/accepting data from multiple devices, but devices won’t know about each other data. In fact, for memory management, after successful push, the data can be removed.

Best Regards,

Have you looked at our Couchbase Mobile platform ? The mobile stack consists of Couchbase Lite embedded DB that can synchronize (one-way or two-way) with the sync gateway. The Sync gateway talks to Couchbase Server.

We have couchbase lite supported on many platforms/languages so you can use the native API on those platforms. For C, You could use the REST API to interact with Couchbase Lite.

Tagging @jens

What are the hardware capabilities of these devices, i.e. CPU, RAM and storage? That makes a big difference.

The CPU is Dual-core Cortex A9 (arm), with 1GB DDR3 RAM, storage is limited to different sd card sizes. The space dedicated for measurements storage is ~0.5 GB.
In fact the entire platform is called Zedboard MicroZed.

Currently I am a student associated for an internship with Cern and I am trying to examine the modern and efficient storage for embedded system that is used currently and integrate it - it will cover part of my MSc thesis.

Is couchbase lite, is it possible to use it on linux system? I read a lot through your documentation and it is mainly related to smartphones OS and mobile platforms.
I couldn’t find a way to install/set it up on Linux. Will C SDK even work with CB lite? Or REST is only solution eg. using libcurl for C?

Thank you in advance,