📜  分布式系统中的逻辑时钟

📅  最后修改于: 2021-08-25 10:40:15             🧑  作者: Mango

逻辑时钟是指在分布式系统内的所有计算机上实现协议,以便这些计算机能够在某个虚拟时间跨度内保持事件的一致顺序。逻辑时钟是一种用于捕获分布式系统中的时间和因果关系的机制。分布式系统可能没有物理同步的全局时钟,因此逻辑时钟允许对此类系统中来自不同进程的事件进行全局排序。

例子 :
如果我们到外面去,那么我们已经制定了一个完整的计划,那就是我们必须先在哪个地方去,然后再去第二个,依此类推。我们先不去第二名,然后再去第一名。我们总是维护程序或之前计划的组织。以类似的方式,我们应该有组织地在PC上一一进行操作。

假设我们在分布式系统中有10台以上的PC,每台PC都在做自己的工作,但是接下来我们要如何使它们协同工作。对此有一个解决方案,即逻辑时钟。

方法1:
要在整个过程中排序事件,请尝试采用一种方法来同步时钟。

这意味着,如果一台PC的时间为2:00 pm,那么每台PC的时间都应该相同,而这几乎是不可能的。并非每个时钟都可以一次同步。那么我们就不能遵循这种方法。

方法2:
另一种方法是为事件分配时间戳。

考虑到示例,这意味着如果我们将第一位分配为1,将第二位分配为2,将第三位分配为3,依此类推。然后,我们始终知道,第一名将始终排在第一位,然后依此类推。同样,如果我们给每台PC分配各自的编号,则其组织方式将是:第一台PC首先完成其处理,然后再完成第二个,依此类推。

但是,时间戳只有在遵守因果关系的情况下才能起作用。

什么是因果关系?
因果关系完全基于发生关系之前的情况。

  • 仅当两个事件A和B一件接一件发生时,才取一台PC,然后TS(A)
  • 假设有2个PC,事件A在P1(PC.1)中,事件B在P2(PC.2)中,那么条件也将是TS(A)

关系发生之前发生的财产–

  • 传递关系–
    如果TS(A)
  • 因果关系–
    a-> b,这意味着a发生在b之前,并且如果a发生任何变化,它肯定会反映在b上。
  • 并发事件–
    这意味着并非每个进程都一个接一个地发生,而是使一些进程同时发生,即A ||。 B.