我一直在阅读并尝试围绕Berkeley Algorithm。
伯克利算法告诉我们,领导者会不时地询问所有其他进程的当前时间,计算所有这些时间的平均值,向每个进程发送一个delta值,即差值在该过程'时间与平均值之间。
例如,考虑一个包含流程A
,B
和C
的3流程系统,其中A
为领导者。
现在,如果我是正确的,那么如果B
的漂移值为0.001(也就是说,每1000真实时间仅为999次),我们应该期待确保任何进程都不会超过0.1秒,我会说必须每100秒强制进行一次时钟同步。这意味着我正在使用的表达式是
感:
我的问题是,在我教授的笔记中,人们可以找到以下表达式:
也可以在其他文献资料中找到。任何人都可以解释我为什么我们在第二个表达式中有2个?我不确定这些变量是否是我所假设的。
由于
答案 0 :(得分:4)
(小免责声明:我没有做太多分布式计算。我可能误解了这个问题。为什么不问教授?)
我认为两分之一是考虑到几个过程的正负漂移。
如果您的最坏情况漂移为0.001
,请考虑B
有漂移+0.001
而C
有-0.001
。如果您根据初始公式选择 delta-t ,则B
和C
之间的时差可能会变为 delta 的两倍在你同步之前想要。