3

我正在探索集群计算中的各种架构。一些流行的是:

  1. 主从。
  2. RPC
  3. ...

在主从中,通常的方法是将一台机器设置为主机,并将一堆机器设置为由主机控制的从机。这里的一个特殊算法让我感兴趣。它被称为Leader-Election Algo,它在选择哪些机器将成为master时具有一定的随机性。

我的问题是 - 为什么有人想以这种方式选择主机?与手动选择机器作为主机相比,这种方法有什么优势?

4

3 回答 3

12

这种算法有一些优点:

  1. 节点作为领导者的选择将动态完成,例如您可以选择性能最高的节点,新节点的到来可能是更好的选择。
  2. 动态选择领导者的另一个好方法是,如果一个节点出现重大故障(例如 PC 正在关闭),您还有其他选择,无需手动更改领导者。

  3. 如果您手动选择节点,则应手动配置所有其他节点以使用该节点,并手动设置它们的时间,......但此算法将帮助您处理时间问题。

  4. 例如(不是很相关)为什么在大多数情况下使用 DHCP?此算法将处理太多配置。
于 2011-01-16T18:06:57.623 回答
2

使用此类算法的主要思想是摆脱额外的配置,增加某种灵活性和整个系统的稳定性。但通常(在 HPC/MPI 应用程序中)主节点是手动选择的。

假设您的主选择算法非常简单 - 获取可用系统列表并选择具有最高 IP 地址的系统。在这种情况下,您可以轻松地在任何节点上启动新进程,它会自动找到主节点。

这种想法的一个很好的例子是 WCCP 协议“指定代理”选择算法,其中代理的数量可以是灵活的,并且在运行时选择主节点。

于 2011-01-16T17:57:12.570 回答
2

考虑到节点网络,始终拥有一个领导节点至关重要。如果当前的领导者死亡,那么网络将不得不选择另一个领导者。鉴于这种情况和要求,有两种可能的方法来做到这一点。

  1. 中央系统方法,其中有一个中央节点决定谁将成为领导者。如果当前的领导者死亡,那么这个中心节点将决定谁应该接替领导者的角色。但这是单点故障,即负责决定领导者的中心节点出现故障,如果当前领导者死亡,则没有人可以选择领导者。

  2. 在相同的场景中,我们可以使用分布式领导者选择,因为在所有节点中都会达成共识,领导者应该是谁。所以我们不需要一个中央节点来决定谁是领导者,从而消除了单点故障。当leader节点死亡时,就会有办法检测节点故障,然后每个节点都会启动分布式leader选择算法,相互达成选举leader的共识。

因此,简而言之,当您有一个没有中央控制的系统时,可能是因为该系统旨在可扩展而没有单点故障,在这些系统中选择某个节点时,会使用领导者选举算法。

于 2011-02-10T22:59:05.673 回答