假设连接并不总是可用的,您如何管理“主”数据库服务器和许多“辅助”服务器之间的双向同步,特别是解决冲突?
例如,我有一个移动应用程序,该应用程序使用CoreData作为iOS上的“数据库”,并且我希望允许用户在没有Internet连接的情况下编辑内容。同时,此信息可在设备将连接到的网站上找到。如果/当两个数据库服务器上的数据发生冲突时,该怎么办?
(尽管我知道CoreData有点不同,但我将其称为DB服务器。)
是否有处理此类问题的一般策略?这些是我可以想到的选项:
1.始终将客户端数据用作更高优先级
2.与服务器端相同
。3.尝试通过标记每个字段的编辑时间戳并进行最新编辑来解决冲突。
尽管我敢肯定,第三个选项会为破坏性的数据破坏打开空间。
我知道CAP定理与此有关,但是我只想最终保持一致,所以不能完全排除它,对吗?
相关问题:双向数据同步的最佳实践模式。对这个问题的第二个回答说,这可能无法完成。