logical clock 逻辑时钟
程序员文章站
2022-05-28 12:14:23
...
分布式系统使用的是逻辑时钟。一些分布式存储系统,对数据项后面加上版本号,更新时增加版本号的值,应该算一种 逻辑时钟。【比如,事件的因果关系就是一种逻辑。】
常见的逻辑时钟(描述方法):Lamport timestamps(事件先后关系),Vector clock(无因果关系,同时发生的事件,vector用于并发,是不是想到了java里的容器?没错!哈哈)。
前者用于描述一种事件的顺序关系(单线程)。Vector clock用于描述同时发生关系(concurrent并发,多线程才有并发,多线程和CPU的核心数和超线程技术有关)。Vector clock的方法用于发现数据版本冲突(分布式存储系统),即Version vector。
http://www.doc88.com/p-7903104995524.html
或者(推荐):https://www.cnblogs.com/bangerlee/p/5448766.html
摘要:
分布式系统的一些场景也需要记录和比较不同节点间事件发生的顺序,但不同于日常生活使用物理时钟记录时间,分布式系统使用逻辑时钟记录事件顺序关系。
为什么分布式系统不使用物理时钟(physical clock)记录事件?每个事件对应打上一个时间戳,当需要比较顺序的时候比较相应时间戳不就好了?
原因:分布式系统中每个节点记录的时间并不一样,即使设置了 NTP 时间同步节点间也存在毫秒级别的偏差,也会导致事件的先后顺序无法比较。【注意:物理时钟,毫秒级在人来看非常短,但是对于高速运转的CPU,毫秒就是非常长的时间间隔了。在这段误差时间间隔内,不同节点上完全可能发生了很多事件,这样,当需要区分事件顺序时,便无法区分事件的先后顺序!】
推荐阅读
-
逻辑卷管理-LVM(Logical Volume Manager)
-
逻辑赋值(Logical Assignment)
-
scratch怎么做指针时钟? scratch时钟摆动逻辑思维的过程
-
逻辑卷管理-LVM(Logical Volume Manager)
-
首页 公告 自定义 时钟 HOME HOME CLOCK_html/css_WEB-ITnose
-
logical clock 逻辑时钟
-
logical clock 逻辑时钟
-
JavaScript实现仿Clock ISO时钟
-
postgresql 11 的逻辑复制 logical replication 之二 alter table replica identity using
-
Data Guard之逻辑备库的正常切换(logical standby switchover)