Github user vasia commented on the pull request: https://github.com/apache/flink/pull/537#issuecomment-86727594 Hey @andralungu! Thanks for this PR. I know it took more effort than you might have thought initially :-) I have a few comments: - In my opinion, the degrees availability and the total number of vertices should be *optional*. Otherwise, we are introducing unnecessary overhead for the majority of cases, i.e. when these are not actually used by an algorithm. - The edge direction option and the degrees / numOfVertices should be *separate extensions* and not tight together, i.e. we should allow a user to choose the edge direction option independently of whether they also want to access the degrees. To be consistent with the rest of the VertexCentricIteration options, we could introduce methods `setMessagingDirection()`, `setInDegreesAvailable()` and so on. - The change should be transparent to user code, i.e. if a user has turned on the option for accessing inDegrees, they should be able to call `vertex.getInDegree()` inside the messaging/update functions, but `vertex.getValue()` should still return the vertex value. In other words, this Tuple3 you're using to store the degrees should be hidden from the public methods. - Finally, we should add documentation for these options, including description of how they work and some illustrative examples. Let me know what you think about the above and whether you have any questions!
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---