如果是这样,当图形需要修改时,它如何才能保证良好的性能?我所说的修改是指添加或删除顶点或边。
发布于 2013-09-05 00:44:36
是的,pregel允许修改结构。这被称为突变。本文的3.4节拓扑突变中介绍了这一点。
根据这篇论文,可以在(http://kowshik.github.io/JPregel/pregel_paper.pdf)上找到:
“多个顶点可能在同一个superstep中发出冲突的请求(例如,两个请求添加一个顶点V,具有不同的初始值)。我们使用两种机制来实现确定性:偏序和处理程序。
与消息一样,在发出请求后,突变在superstep中生效。在该superstep中,首先执行移除,在移除顶点之前先移除边,因为移除顶点会隐式移除其所有的外边。相加在移除之后,顶点相加在边相加之前,所有突变都在调用Compute()之前。这种偏序对于大多数con都会产生确定性的结果。
其余的冲突由用户定义的处理程序解决。如果在同一superstep中有多个创建相同顶点的请求,那么默认情况下,系统只会任意选择一个,但有特殊需求的用户可以通过在其vertex子类中定义适当的处理程序方法来指定更好的冲突解决策略。使用相同的处理程序机制来解决由多个顶点移除请求或由多个边添加或移除请求引起的冲突。我们将解析委托给处理程序以保持Compute()的代码简单,这限制了处理程序和Compute()之间的交互,但在实践中并不是问题。“
https://stackoverflow.com/questions/15205807
复制相似问题