Hello,

I've used delta iterations several times up until now, but I just realized
that I never fully understood what happens inside. And the documentation
only explains things from a user's perspective. Which is why I could really
use your help :).

Here goes nothing:
In Gelly, Graph.java, there is a nice runVertexCentricIteration(...)
method, which is in fact Spargel's - that disguises a delta iteration. What
I am trying to do is to set the vertex value before running

DataSet<Vertex<K, VV>> newVertices =
verticesWithInDegrees.runOperation(iteration);

The problem is that after this runOperation, the vertex values get reset.
Now, when I looked in VertexCentricIteration.java's createResult().

It's a plain delta iteration that (more or less) looks like this:

final DeltaIteration<Vertex<VertexKey, VertexValue>, Vertex<VertexKey,
VertexValue>> iteration =
   this.initialVertices.iterateDelta(this.initialVertices,
this.maximumNumberOfIterations, zeroKeyPos);

................

// configure coGroup update function with name and broadcast variables
updates = updates.name("Vertex State Updates");
for (Tuple2<String, DataSet<?>> e : this.bcVarsUpdate) {
   updates = updates.withBroadcastSet(e.f1, e.f0);
}

// let the operator know that we preserve the key field
updates.withForwardedFieldsFirst("0").withForwardedFieldsSecond("0");

return iteration.closeWith(updates, updates);

The

DataSet<?>

in the for is the problem. Vertex values get reset. Can someone give me a
hint on how to propagate the vertex value throughout the iteration?

Thanks!
Andra
----------------------------------------------------------------------------------------
P.S. Could someone please subscribe me to the @user mailing list? For some
reason, sending the mail to that recipient fails. Thanks!

Reply via email to