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