[ 
https://issues.apache.org/jira/browse/FLINK-3772?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15245760#comment-15245760
 ] 

Greg Hogan commented on FLINK-3772:
-----------------------------------

Each of the "join" methods is implemented as a {{coGroup}} as is each of the 
degree methods, so the trade-off is a {{coGroup}} vs a {{reduce}} to calculate 
each degree, and a {{coGroup}} vs a hash-join for each annotated degree. As you 
note the user is required to compose multiple methods and must be aware of 
implementation details such as using {{inDegrees}} or {{outDegrees}} instead of 
{{getDegrees}} on an undirected graph. Performance impacts include the use of 
{{coGroup}}, immutable types, and that the degree functions materialize the 
vertex set.

I see these {{GraphAlgorithm}} as providing a different set of capabilities 
from the {{Graph}} API, as demonstrated in the {{ClusteringCoefficient}} PR. I 
think Flink benefits from having optimized algorithms as composable building 
blocks for more complex algorithms.

> Graph algorithms for vertex and edge degree
> -------------------------------------------
>
>                 Key: FLINK-3772
>                 URL: https://issues.apache.org/jira/browse/FLINK-3772
>             Project: Flink
>          Issue Type: New Feature
>          Components: Gelly
>    Affects Versions: 1.1.0
>            Reporter: Greg Hogan
>            Assignee: Greg Hogan
>             Fix For: 1.1.0
>
>
> Many graph algorithms require vertices or edges to be marked with the degree. 
> This ticket provides algorithms for annotating
> * vertex degree for undirected graphs
> * vertex out-, in-, and out- and in-degree for directed graphs
> * edge source, target, and source and target degree for undirected graphs



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

Reply via email to