剑桥大学-Time,clocks,and ordering of events

分布式系统需要时间
1.调度程序,超时,故障检测器
2.性能测量
3.日志文件和数据库:记录事件发生的时间

  1. 具有时间限制有效性的数据
  2. 确定多个节点上的事件顺序
    image.png

    1.在分布式系统中,网络的传输并不是FIFO模式,因此对于用户C来说他可能先收到m2,后收到m1的消息,这可能导致是非因果。
    2.解决办法之一,用户A和用户B在发送消息的时候带上时间戳,用户C根据时间戳来判断因果关系。但是这要求用户A的物理时间和用户B的物理时间要同步。但时间上是不现实的会存在时间漂移。
    3.可以使用逻辑时间解决这个问题

逻辑时钟与物理时钟
1.物理时钟:计算经过的秒数--->对许多事情有用,但可能与因果关系不一致
2.逻辑时钟:计算发生的事件数--->旨在捕获因果关系

逻辑时钟:
1.Lamport 时钟
2.向量时钟

Lamport时钟算法


image.png

向量时钟


image.png

对于Lamport时钟来说的问题是 对于L(a) < L(b) ,无法确定a->b或a||b
向量时钟的特点
V(a) < V(b) <---> a--->b
V(a) =V(b) <---> a=b
V(a) || V(b) <---> a||b

参考文章
逻辑时钟 - 如何刻画分布式中的事件顺序

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容