河源市企业网站seo价格,可以做动漫的网站有哪些,闵行手机网站建设,深圳做网站 肖先生一、物理时钟 vs 逻辑时钟
时钟的存在主要是为了标识事件的发生顺序。
分布式系统不使用物理时钟记录事件#xff0c;分布式系统中每个节点记录的时间并不一样#xff0c;即使设置了 NTP 时间同步节点间也存在毫秒级别的偏差
所以需要有另外的方法记录事件顺序关系#x…一、物理时钟 vs 逻辑时钟
时钟的存在主要是为了标识事件的发生顺序。
分布式系统不使用物理时钟记录事件分布式系统中每个节点记录的时间并不一样即使设置了 NTP 时间同步节点间也存在毫秒级别的偏差
所以需要有另外的方法记录事件顺序关系这就是逻辑时钟
二、Lamport timestamps
Lamport时间戳是一种逻辑时钟的表示方法。
分布式系统中按是否存在节点交互可分为三类事件一类发生于节点内部二是发送事件三是接收事件
Lamport时间戳的规则是这样的
每个事件对应一个Lamport时间戳初始值为0如果事件在节点内发生时间戳加1如果事件属于发送事件时间戳加1并在消息中带上该时间戳如果事件属于接收事件时间戳 Max(本地时间戳消息中的时间戳) 1 通过该定义可以根据Lamport时间戳进行比较能获得事件的偏序关系
但当两个事件相同时由定义可以得知这种情况只可能出现在两个机器上所以可以事先对机器编号根据机器的编号能得到两个时间戳相同的事件的顺序。
也就是说这种情况下的所有事件都有相对顺序没有同时发生一说。图1中事件B4和事件C3没有因果关系属于同时发生事件但Lamport时间戳定义两者有先后顺序。
三、Vector clock
Vector clock是在Lamport时间戳基础上演进的另一种逻辑时钟方法它通过vector结构不但记录本节点的Lamport时间戳同时也记录了其他节点的Lamport时间戳。Vector clock的原理与Lamport时间戳类似使用图例如下 同时发生在两个节点上两个事件的时间戳大小关系不一致比如图2中节点B上的第4个事件 (A:2B:4C:1) 与节点C上的第2个事件 (B:3C:2) 分别是B大和C大则这两个事件就是同时发生的。