【发布时间】:2013-01-03 17:58:36
【问题描述】:
我试图了解 LCR 和 Floodmax 在同步网络环境中的实际区别。
我了解 Floodmax 的时间复杂度为 O(N),其工作原理如下:
- 每个进程都保持它迄今为止看到的最大 UID(最初是它的 拥有)。
- 在每一轮中,每个进程都会将此最大值发送给每个 即将离任的邻居。
- 在直径回合之后,如果最大值是进程的 UID,那么它 选举自己为领导者,否则为非领导者。
另一方面,LCR:
- 每个进程都围绕环发送其 UID。当一个进程收到一个 UID,它会将这个与自己的进行比较。
- 如果传入的 UID 更大,则将这个 UID 传递给下一个 过程。
- 如果传入的 UID 较小,则将其丢弃。
- 如果相等,则进程将自己声明为领导者。
它的时间复杂度也是 O(N)。因此,从本质上讲,这两种算法都在令牌环网络中传递 UID。两者之间有什么真正的区别或优势吗?
【问题讨论】:
标签: algorithm networking distributed