You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Vasia Kalavri (JIRA)" <ji...@apache.org> on 2015/03/12 12:38:41 UTC

[jira] [Created] (FLINK-1694) Change the split between create/run of a vertex-centric iteration

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)