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

ASF GitHub Bot commented on FLINK-3965:
---------------------------------------

Github user greghogan commented on the pull request:

    https://github.com/apache/flink/pull/2032#issuecomment-221993882
  
    There is more discussion in the ticket description, but for Gelly the idea 
is to keep algorithms small and discrete yet not duplicate computation.
    
    My first take on this merely cached algorithm outputs and if the 
configurations were "equal" would use the prior result.
    
    This second take is able to merge configurations which is much more 
powerful. We can do this because `DataSet`s are lazily evaluated and we can 
replace the old `DataSet` when we want to change how we generate the result. We 
"replace" the `DataSet` by actually wrapping it in a proxy class for which the 
`MethodHandler` always defers to the replaceable `DataSet`.


> Delegating GraphAlgorithm
> -------------------------
>
>                 Key: FLINK-3965
>                 URL: https://issues.apache.org/jira/browse/FLINK-3965
>             Project: Flink
>          Issue Type: New Feature
>          Components: Gelly
>    Affects Versions: 1.1.0
>            Reporter: Greg Hogan
>            Assignee: Greg Hogan
>             Fix For: 1.1.0
>
>
> Complex and related algorithms often overlap in computation of data. Two such 
> examples are:
> 1) the local and global clustering coefficients each use a listing of 
> triangles
> 2) the local clustering coefficient joins on vertex degree, and the 
> underlying triangle listing annotates edge degree which uses vertex degree
> We can reuse and rewrite algorithm output by creating a {{ProxyObject}} as a 
> delegate for method calls to the {{DataSet}} returned by the algorithm.



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

Reply via email to