【发布时间】:2010-05-08 01:05:37
【问题描述】:
我正在两个设备之间同步对象。对象具有lastModified 属性。如果两个设备都修改了一个对象,那么在下一次同步期间,两个设备上都会选择具有最新lastModified 的对象版本。所以我们不做细粒度的合并,只做“最新版本”的合并。
问题是这样的。当一个设备接收到已更改对象的列表时,它无法可靠地将接收到的对象的 lastModified 与其自己的对象进行比较,因为这两个设备上的系统时间可能不同。
我考虑让每台设备在同步期间发送其当前日期/时间。然后每个计算远程时间和本地时间之间的差异以正确比较日期。但是,如果在发送日期和远程设备接收日期之间存在延迟,则会导致与同时修改(或时间非常接近)的对象进行不正确的比较。即两个设备都认为远程对象较新,最终得到不同的对象。
我希望我已经解释得足够清楚了。
这类问题必须有一个通用的解决方案,但我的大脑没有想出任何东西。有什么建议么?提前谢谢...
【问题讨论】: