可可 – 什么是基于时间戳的同步的常见缺陷?

可可 – 什么是基于时间戳的同步的常见缺陷?,第1张

概述我正在实现我的第一个同步代码.在我的情况下,我将有两种类型的iOS客户端,每个用户将使用lastSyncTimestamp将记录同步到一个服务器,该lastSyncTimestamp表示最后一次同步的毫秒数的Unix纪元的64位整数.可以随时在服务器或客户端上创建记录,并将记录通过HTTP交换为 JSON. 我不担心冲突,因为几乎没有更新,总是来自同一个用户.然而,我想知道是否有一些常见的事情,我 我正在实现我的第一个同步代码.在我的情况下,我将有两种类型的iOS客户端,每个用户将使用lastSyncTimestamp将记录同步到一个服务器,该lastSyncTimestamp表示最后一次同步的毫秒数的Unix纪元的64位整数.可以随时在服务器或客户端上创建记录,并将记录通过http交换为 JSON.

我不担心冲突,因为几乎没有更新,总是来自同一个用户.然而,我想知道是否有一些常见的事情,我需要知道,这可能会出错,基于时间戳的方法,如在夏令时间同步,同步与另一个或其他陷阱冲突.

我知道git和其他版本控制系统避免与基于内容的协商同步方法的时间戳同步.我可以想像这样一个方法,我的应用程序,其中使用uuID或哈希的对象,两个对等体宣布他们拥有的对象,然后交换,直到两个对等体具有相同的集合.

如果任何人知道基于内容的同步与基于时间戳的同步的任何优点或缺点,一般也是有帮助的.

编辑 – 这里有一些优点/缺点,我提出了时间戳和基于内容的同步.请挑战/纠正

注意 – 我正在定义基于内容的同步,作为简单的谈判2套对象,如2个孩子如果你给他们每个部分的混合堆叠2组相同的棒球卡,并告诉他们,他们看起来通过他们宣布并将他们发现的任何重复的东西交给另一个,直到它们都具有相同的集合.

>约翰尼 – “我拿到这张卡.”
> Davey – “我拿到了这堆卡,给我那张卡.”
>约翰尼 – “这是你的卡片,Gimme那堆卡片.”
> Davey – “这是你的一堆卡片.”
> ….
>两者 – “我们完成了”

基于时间戳的同步的优点

>易于实施
>用于同步的单个属性.

基于时间戳的同步的缺点

时间是观察者的相对概念,不同机器的时钟可能不同步.有几种方法可以解决这个问题.在单个计算机上生成时间戳,该时间戳不能很好地缩放并代表单个故障点.或使用逻辑时钟,如矢量时钟.对于平均开发人员构建自己的系统,向量时钟可能太复杂,无法实现.
>基于时间戳记的同步功能可供客户端主机同步,但对于同步同步也不起作用,或者两台主机可能发生同步.
>单点故障,无论何时生成时间戳.
时间与正在同步的内容没有真正的关联.

基于内容的同步的优点

>不需要维护每个对等体的时间戳. 2个对等体可以开始同步会话,并根据内容开始同步.
>定义好的同步端点 – 双方都有相同的集合.
>允许对等体架构,任何对等体可以充当客户端或服务器,提供可以托管http服务器.
> Sync与集合的内容一起工作,而不是抽象的概念时间.
>由于同步是围绕内容构建的,因此如果需要,同步可用于进行内容验证.例如.可以对内容计算出SHA-1哈希值,并将其用作uuID.它可以与在同步期间发送的内容进行比较.
>更进一步的,SHA-1散列可以基于以前的哈希保持一致的内容历史.

基于内容同步的缺点

>可能需要实现对象上的额外属性.
>与基于时间戳的同步相比,双方更多的逻辑.
>稍微更加聊天的协议(这可以通过在集群中同步内容进行调整).

解决方法 我不知道它是否适用于您的环境,但您可能会考虑其时间是“正确的”,客户端还是服务器(或者甚至是重要的)?如果所有客户端和所有服务器都不同步到同一时间源,则当使用客户端的“现在”时间同步到服务器(或从服务器)时,客户端可能会获得意想不到的结果.

我们的发展组织在几年前就遇到了一些问题.开发者机器并不都与SCM驻留的服务器(并且可能没有被同步到任何时间源)同步到同一时间源,因此开发者机器时间可能会漂移.几个月后,一台开发机器可能需要几分钟的时间.我不记得所有的问题,但似乎构建过程试图从一定时间(最后一次构建)获取所有文件修改.文件可能已被签入,因为最后一次生成,在上一次生成之前发生了修改时间(从客户端).

可能是我们的SCM程序不是很好,或者我们的SCM系统或构建过程对这个问题过于敏感.即使在今天,我们所有的开发机器都应该与其SCM系统的服务器同步.

再次,这是几年前,我不记得细节,但我想提到它的机会,在你的情况下是重要的.

总结

以上是内存溢出为你收集整理的可可 – 什么是基于时间戳的同步的常见缺陷?全部内容,希望文章能够帮你解决可可 – 什么是基于时间戳的同步的常见缺陷?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1026772.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存