2013-03-04 52 views

回答

1

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

据该报称,可在(http://kowshik.github.io/JPregel/pregel_paper.pdf):

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

与消息,突变 请求发出后生效的超级步在这一超级步清除执行。首先,在去除顶点之前移除边,因为移除顶点将隐含地移除其所有的边缘。在添加边缘之前添加 删除,并添加顶点,并且在对Compute()的调用之前的所有突变 。这种部分排序为大多数结果提供了确定性的结果。

剩余的冲突由用户定义的处理程序解决。如果 有多个请求在相同的超级步骤中创建相同的顶点,那么默认情况下系统只是任意选取一个顶点,但具有特殊需求的用户可以指定更好的冲突解决方案 策略,方法是在其顶点中定义适当的处理程序方法 子类。使用相同的处理机制来解决由多个顶点移除请求引起的冲突 ,或者由多个边缘 添加或移除请求引起的冲突。我们委托分辨率处理 保持计算()的简单,这限制了处理器和计算()之间的相互作用 的代码,但在实践中 一直没有问题。”