我正在开发一个应用程序,需要实现数据同步算法。
我们有一个主服务器和多个从属设备,它们需要进行同步。
现在,我有三种算法,我想听听你们中的任何人对哪一种算法最好的建议。我真的非常感谢你们的意见。
1. 可以在此处找到该算法的描述。这是一篇由韩国汉阳大学信息与通信分部的Sang-Wook Kim撰写的科学研究论文。
2. 这个算法涉及维护数据库时间戳和版本号的记录
例如,如果一个移动设备的版本为v10,服务器的版本为v12,则假定移动设备上的当前时间戳比服务器上的时间戳要早,
如果我们用-表示删除,+表示插入,~表示更改
并且以下更改日志与几个版本相关:
v11:+r(44),~r(45),-r(46) v12:-r(44),〜r(45),+r(47)
那么数据库的整体变化就是,从v12开始的~r(45),+r(47),-r(46)
因此可以看到,记录r(44)不需要,即使它被添加了,然后被删除了。因此不需要传输冗余数据。
整个算法可以在此处找到(我把它放在了pdf中)http://goo.gl/yPC7A
3. 该算法实际上--保持每条记录的最后更改时间戳的表格。并按时间戳对行进行排序。仅同步已更改的行,我唯一看到的缺点就是根据时间戳每次对表进行排序。
这里有一个链接http://goo.gl/8enHO
非常感谢您的意见!:D