在TaskManagers(TM)的HA上下文中,当TM发生故障时,将从JobManager(JM)出现故障的最新检查点恢复一个新的TM。
说我们有3个TM(tm1, tm2, & tm3
)
在给定时间t
,每个人的检查点(cp)在cp1
。所有TM都在其中广播数据。
现在tm2
发生故障,JM将tm2'
的检查点带到cp1
作为HA的一部分。到t+x
出现新TM时,与此同时,其他TM前进到cp2
。
在tm1
上如何重播tm3
和cp2
作为tm2'
的一部分广播的数据?
答案 0 :(得分:1)
检查点的内容由检查点障碍确定。给定的检查点准确地包括了处理所有事件直到相应障碍的每个人的整个集群的影响,而没有任何事件在该障碍之后。
在还原过程中,将整个群集重置为最新检查点的内容,然后从该一致的起点继续进行处理。
广播数据的检查点或多或少与其他所有检查点一样,只是每个实例都存储自己的广播数据副本-期望这些副本相同。在恢复期间,广播源倒退到检查点中记录的点,并且广播状态也从检查点恢复。任何新实例(由于扩大了群集)都将获得广播状态的副本(通过读取打算用于其他实例之一的状态来获取)。
可能是在发生故障时,某些计算机已完成新的检查点,但是除非每个TM已完成该检查点并且作业管理器已完成该检查点,否则该检查点将不用于还原。