Gabor Gevay created FLINK-2527:
----------------------------------

             Summary: If a VertexUpdateFunction calls setNewVertexValue more 
than once, the MessagingFunction will only see the first value set
                 Key: FLINK-2527
                 URL: https://issues.apache.org/jira/browse/FLINK-2527
             Project: Flink
          Issue Type: Bug
          Components: Gelly
            Reporter: Gabor Gevay
            Assignee: Gabor Gevay
             Fix For: 0.10, 0.9.1


The problem is that if setNewVertexValue is called more than once, it sends 
each new value to the out Collector, and these all end up in the workset, but 
then the coGroups in the two descendants of MessagingUdfWithEdgeValues use only 
the first value in the state Iterable. I see three ways to resolve this:

1. Add it to the documentation that setNewVertexValue should only be called 
once, and optionally add a check for this.
2. In setNewVertexValue, do not send the newValue to the out Collector at once, 
but only record it in outVal, and send the last recorded value after 
updateVertex returns.
3. Iterate over the entire Iterable in MessagingUdfWithEVsSimpleVV.coGroup and 
MessagingUdfWithEVsVVWithDegrees.coGroup. (This would probably still need some 
documentation addition.)

I like 2. the best. What are your opinions?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to