gpt4 book ai didi

数据库同步算法建议

转载 作者:太空狗 更新时间:2023-10-30 01:42:56 24 4
gpt4 key购买 nike

我正在开发一个需要实现数据同步算法的应用程序。

我们会有一个主服务器和多个从属设备,它们需要一起同步。

现在,我有三种算法,我想听听大家的意见,看看哪一种算法是最好的。我非常感谢您的意见。

1.算法的描述可以在这里找到。它是 Sang-Wook Kim 的一篇科研论文资讯通讯处韩国汉阳大学

http://goo.gl/yFCHG

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

最佳答案

我自己并没有直接参与其中,但当人们从事此类工作时,我就在身边。他们的设计不是由算法分析或性能搜索驱动的,而是花数小时与最终用户代表讨论在收到冲突的更新请求时该怎么做。您可能希望与用户一起完成一些用例。用户甚至可能希望针对不同位置的不同类型的数据使用不同类型的冲突解决方案。

此处的所有设计都通过传播更改来节省带宽。如果有什么事情导致一方不再是另一方的精确副本,这种不一致可能会无限期地持续下去。您至少可以通过交换校验和(SHA-2 或 SHA-3,如果您足够担心的话)来检测此类问题。一个想法是向接收系统询问校验和,然后根据该校验和选择更新包。

关于数据库同步算法建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15458140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com