Hi, I think that there are two solutions;
1. Invalid edges send Iterator.empty messages in sendMsg of the Pregel API. These messages make no effect on corresponding vertices. 2. Use GraphOps.(collectNeighbors/collectNeighborIds), not the Pregel API so as to handle active edge lists by yourself. I think that it is hard to handle edge active lists in Pregel APIs. Thought? Best regards, takeshi On Fri, Nov 14, 2014 at 7:32 AM, Daniil Osipov <[email protected]> wrote: > Hello, > > I'm attempting to implement a clustering algorithm on top of Pregel > implementation in GraphX, however I'm hitting a wall. Ideally, I'd like to > be able to get all edges for a specific vertex, since they factor into the > calculation. My understanding was that sendMsg function would receive all > relevant edges in participating vertices (all initially, declining as they > converge and stop changing state), and I was planning to keep vertex edges > associated to each vertex and propagate to other vertices that need to know > about these edges. > > What I'm finding is that not all edges get iterated on by sendMsg before > sending messages to vprog. Even if I try to keep track of edges, I don't > account all of them, leading to incorrect results. > > The graph I'm testing on has edges between all nodes, one for each > direction, and I'm using EdgeDirection.Both. > > Anyone seen something similar, and have some suggestions? > Dan >
