Vasia Kalavri created FLINK-1694: ------------------------------------ Summary: Change the split between create/run of a vertex-centric iteration Key: FLINK-1694 URL: https://issues.apache.org/jira/browse/FLINK-1694 Project: Flink Issue Type: Task Components: Gelly Reporter: Vasia Kalavri
Currently, the vertex-centric API in Gelly looks like this: {code:java} Graph inputGaph = ... //create graph VertexCentricIteration iteration = inputGraph.createVertexCentricIteration(); ... // configure the iteration Graph newGraph = inputGaph.runVertexCentricIteration(iteration); {code} We have this create/run split, in order to expose the iteration object and be able to call the public methods of VertexCentricIteration. However, this is not very nice and might lead to errors, if create and run are mistakenly called on different graph objects. One suggestion is to change this to the following: {code:java} VertexCentricIteration iteration = inputGraph.createVertexCentricIteration(); ... // configure the iteration Graph newGraph = iteration.result(); {code} or to go with a single run call, where we add an IterationConfiguration object as a parameter and we don't expose the iteration object to the user at all: {code:java} IterationConfiguration parameters = ... Graph newGraph = inputGraph.runVertexCentricIteration(parameters); {code} and we can also have a simplified method where no configuration is passed. What do you think? Personally, I like the second option a bit more. -Vasia. -- This message was sent by Atlassian JIRA (v6.3.4#6332)