繁体   English   中英

分布式计算中的LCR vs Floodmax(领导者选举)

[英]LCR vs Floodmax in distributed computing (Leader Election)

我试图了解同步网络中LCR和Floodmax之间的实际区别。

我了解Floodmax的时间复杂度为O(N),并且本质上如下工作:

  • 每个进程都将保持到目前为止已看到的最大UID(最初是自己的UID)。
  • 在每个回合中,每个进程都会将此最大值发送给每个传出邻居。
  • 如果最大值是进程的UID,则在进行diam取整之后,它将选举自己为领导者,否则为非领导者。

另一方面,LCR:

  • 每个进程在环周围发送其UID。 进程收到UID时,会将其与其自身进行比较。
  • 如果传入的UID较大,则它将此UID传递到下一个进程。
  • 如果传入的UID较小,则将其丢弃。
  • 如果相等,则过程将自己声明为领导者。

它的时间复杂度也为O(N)。 因此,从本质上讲,两种算法都在令牌环网络中绕过UID。 两者之间有什么真正的区别或优势?

顾名思义,FloodMax算法会将消息“淹没”网络。 与LCR不同,即使网络拓扑不是环形,FloodMax也可以使用。 FloodMax算法的先决条件是必须知道网络直径(使用LCR则不是这样),并且网络直径具有时间复杂度。 另一方面,LCR不需要知道网络直径:因此,它需要额外的通信开销,因为领导者一旦选举出自己就需要通知所有其他进程终止。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM