[ 
https://issues.apache.org/jira/browse/HAMA-788?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Edward J. Yoon updated HAMA-788:
--------------------------------

    Fix Version/s:     (was: 0.6.3)
    
> Graph Aggregator Restracturing
> ------------------------------
>
>                 Key: HAMA-788
>                 URL: https://issues.apache.org/jira/browse/HAMA-788
>             Project: Hama
>          Issue Type: New Feature
>          Components: graph
>    Affects Versions: 0.6.2
>            Reporter: Anastasis Andronidis
>            Assignee: Anastasis Andronidis
>            Priority: Minor
>              Labels: features
>
> I think that we should add a second type of aggregators that will be able to 
> act on top of BSP peers instead of vertices. This will give the advantage to 
> graph framework programmers and users to add features easier.
> The interface that I was thinking:
> // This will run on slave peers
> // Get the value of the peer we want to monitor and act on it
> public Writable getPeerValue(GraphJobRunner<V, E, M> graphJobRunner);
> // This will run on master aggregator
> // Compose values
> public void aggregate(Writable v);
> // Get the composed value
> public Writable getValue();
> // This will run on slave peers
> // Set the composed value to the peer
> public void setPeer(GraphJobRunner<V, E, M> graphJobRunner, Writable v);
> // Reset the instance so we don't need to recreate object
> public void reset();
> e.g. 
> 1) The graph framework "stop" condition can act as a peer aggregator
>       a) we check on every peer if we have vertex changes (an int variable)
>       b) send all integers to the master aggregator and check if we need to 
> stop
>       c) slaves get a message to stop the peer or continue
> 2) Count all vertices in every superstep (if we have dynamic changes in 
> vertices) can act as a peer aggregator
>       a) get the number of vertices on every peer
>       b) sum all vertices count on master aggregator
>       c) slaves update their values
> For aggregators to work properly, we need to make a sync (superstep) before 
> every graph iteration. But we can also introduce a "lazy" way to do the 
> aggregations so the user code run at same time of the aggregation. (the 
> "stop" condition works this way).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to