0

在 TaskManagers(TM) 的 HA 上下文中,当一个 TM 发生故障时,一个新的 TM 将从 JobManager(JM) 故障的最新检查点恢复。

假设我们有 3 个 TM ( tm1, tm2, & tm3) 在某个时间t每个人的检查点 (cp) 都在cp1。所有 TM 在它们之间广播数据。

现在tm2下去了,JM 带来tm2'cp1检查点作为 HA 的一部分。当t+x一个新的 TM 被提出时,同时其他人进展到cp2.

tm1由广播和tm3作为其一部分的数据如何cp2重播tm2'

4

1 回答 1

1

检查点的内容由检查点屏障决定。给定的检查点准确地包括整个集群中每个人的影响,这些人已经处理了所有事件,直到相应的障碍,并且没有任何事件在该障碍之后。

在还原期间,整个集群将重置为最近检查点的内容,然后从该一致的起点继续处理。

广播数据或多或少像其他所有内容一样设置检查点,只是每个实例都存储自己的广播数据副本——期望这些副本是相同的。恢复过程中,广播源倒回到检查点记录的点,广播状态也从检查点恢复。任何新实例(由于扩展集群)都将获得广播状态的副本(通过读取用于其他实例之一的状态来获取)。

可能是在发生故障的时候,一些机器已经完成了一个新的检查点,但是一个检查点不会用于恢复,除非每个 TM 都完成了那个检查点,并且 Job Manager 已经完成了它。

于 2020-07-30T20:13:30.057 回答