For example, if the message passing function is:
def message(edges):
return {'f1': edges.src['f1'], 'f2': edges.dst['f2']}
In the reduce function, is it guaranteed that nodes.mailbox['f1'][i]
and nodes.mailbox['f2'][i]
are from the same edge?
I have tested on a small graph and found they were from the same edge, but I want to know whether that holds in general.