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

Marko A. Rodriguez commented on TINKERPOP-379:
----------------------------------------------

This seems overly complicating.

Problems:

* {{MessageCombiners}} will have to know how to deal with these static messages.
* You never know the order you get messages in so if you need to have the 
static message first before processing other messages you are hosed.
** Developers will have to maintain a list of all such messages up till the 
static message arrives (memory issues).

Next, this doesn't need to be a special method. If someone has a 
{{VertexProgram}} that can do some initialization messages in the first round 
along with some data messages, then they will be smart to make their 
{{MessageCombiner}} do as expected as well as dealing with out of order 
messages.

> MessageScope.Local.setStaticMessage(M msg)
> ------------------------------------------
>
>                 Key: TINKERPOP-379
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-379
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: process
>    Affects Versions: 3.0.2-incubating
>            Reporter: Matthias Broecheler
>            Assignee: Marko A. Rodriguez
>             Fix For: 3.1.1-incubating
>
>
> A special variant of a local message scope should be introduced where the 
> message is fixed (which could be achieved through a message call above).
> Such MessageScopes would be restricted in that only the configured message 
> would be allowed. The benefit of this special case is that it allows 
> GraphComputers to execute such messages much more efficiently.
> For instance, for PageRankVertexProgram there is the countMessageScope which 
> has a static message (1.0d) which is used for degree counting. If a 
> VertexProgram only has a static message scope for a particular iteration, 
> then the GraphComputer can execute two iterations at once. The given 
> iteration (where only this static message can be send, and hence nothing 
> needs to be send at all) and the next iteration where calling receive would 
> return the static message.
> On large graphs that can make a significant performance difference for simple 
> jobs like degree counting. For GraphComputer implementations that require 
> scanning the entire graph (Hadoop, Fulgora) this makes a tremendous 
> difference.



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

Reply via email to