0

如果是这样,当图形需要修改时,它如何归档良好的性能?我所说的修改是添加或删除顶点或边。

4

1 回答 1

1

是的,pregel 允许修改结构。这称为突变。它在论文的第 3.4 节拓扑突变中介绍。

根据该论文,可在(http://kowshik.github.io/JPregel/pregel_paper.pdf)获得:

“多个顶点可能在同一个超步中发出冲突请求(例如,添加顶点 V 的两个请求,具有不同的初始值)。我们使用两种机制来实现确定性:部分排序和处理程序。

与消息一样,在发出请求后,突变在超级步骤中生效。在该超步中,首先执行删除,在删除顶点之前删除边,因为删除顶点会隐式删除其所有出边。添加在删除之后,在边添加之前添加顶点,并且所有突变都在调用 Compute() 之前。对于大多数冲突,这种部分排序会产生确定性的结果。

剩余的冲突由用户定义的处理程序解决。如果有多个请求在同一个超步中创建同一个顶点,那么默认情况下系统只是任意选择一个,但有特殊需求的用户可以通过在其 Vertex 子类中定义适当的处理程序方法来指定更好的冲突解决策略。相同的处理程序机制用于解决由多个顶点删除请求或多个边添加或删除请求引起的冲突。我们将解决方案委托给处理程序以保持 Compute() 的代码简单,这限制了处理程序和 Compute() 之间的交互,但在实践中并没有成为问题。”

于 2013-09-04T16:44:36.407 回答