The structure / algorithm for data synchronization for the server & # 8596; devices?

I am looking to synchronize data between servers and distributed clients. The data source on the server is mysql with django on top. Customer may vary. Updates can be performed on any client or server, and the connection between the server and the client is not reliable (for example, changes can be made on a disconnected cell phone, should be synchronized when the cell phone is connected again).

S. Lott suggests using a version control design template in this matter , which makes sense. I am wondering if there are any existing packages / implementations of this that I can use. Or should I use svn / git / etc?

Are there other alternatives? There should be synchronization frameworks or a detailed description of the algorithms there, but I was not very lucky to find them. I would appreciate it if you pointed me in the right direction.

+6
python synchronization django
source share
3 answers

Perhaps using plain old rsync is enough.

+1
source share

AFAIK there is no general solution for this, mainly because of the diverse synchronization requirements.

In one of our previous projects, we implemented the Spring synchronization mechanism based on synchronization, which is based on the last updated timestamp field on each of the tables (which are involved in synchronization).

I have heard about SyncML , but do not have much experience with this.

If you have one server and several clients, you might consider a JMS-based approach. Data is combined and placed in Queues (or topics) and will be pulled out by customers.

In your case, since updates are bi-directional, you also need to handle conflict detection. This brings additional complexity.

+1
source share

You may find this link useful: http://pdis.hiit.fi/pdis/download/

This is the project download page for personal distributed information storage (PDIS) and some relevant python packages are listed.

0
source share

All Articles