物理时钟逻辑时钟和向量时钟
一、背景
在分布式系统中,多个节点都有可能修改数据,由于网络等的原因,第一个修改的时间节点发起的写入请求并不一定能最先到达实际写入节点,为了数据的一致性,各个节点对同一数据产生的update/create的值要达到一致性,一般情况下就需要对各个节点的请求数据更新时间进行比对,将最后更新的数据更新到数据系统中(这里的数据系统可以是kv也可以是关系数据库)。
这类问题通常会出在常用的db或kv中间件中。

如上图中,纵轴分别表示A\B\C三个节点,横轴表示时间轴。A\B节点可以看做是请求写入数据的节点,C节点可以看做是最终写入数据的节点。
在3:00,A写入发起将X写入为0的请求,在3:01A告诉B把x写入为1,在3:02A告诉B的写入请求开始发起,B的写入请求在3:03时间到达写入节点C,写入成功,但是A在3:00的时候发起的写入请求到3:04才到C节点,这样A先发起的请求最后