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)

Reply via email to