0

我很好奇,在 Giraph 的 worker API 文档中,我看到了关于这个方法的解释:

public void storeCheckpoint()
// Both the vertices and the messages need to be checkpointed in order for them to be used. 
// This is done after all messages have been delivered, but prior to a superstep starting.

我知道他们在compute()方法中使用了他们接受的消息,但是他们什么时候收到呢?如果是在检查点过程之前,我可以看到文档/代码中的任何部分来理解它吗?

另外,Giraph 在超级步 S+1 之前使用什么机制来存储消息?他们是先将其存储在缓冲区还是磁盘中?

我在 Giraph 文档中找不到任何关于此的内容。

4

1 回答 1

1

所有消息都是在批量超级步之后接收的,它告诉计算函数应该在下一个超级步中在哪个顶点或节点上执行。这就是批量同步并行的过程。在此过程中,已为其传递消息的顶点变为活动状态,并且计算方法在每个顶点上并行执行。这是超级步骤。现在这个过程重复,直到所有顶点都达到称为停止投票的情况,这个停止投票使用 apache zookeeper zk 节点,或者你可以说一个函数 writeHaltInstrcutions(args,args) 来停止正在运行的进程。请记住,您需要 storecheckpoint 函数,因为有时会发生在 Map 100% 执行并且没有 reducer 之后。该过程只是继续运行,没有停止,因此,对于这些情况,您需要一个检查点功能来跟踪您已达到的检查点。我希望这有帮助。

于 2014-11-17T18:00:40.913 回答