[ https://issues.apache.org/jira/browse/GIRAPH-28?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13103357#comment-13103357 ]
Jake Mannix commented on GIRAPH-28: ----------------------------------- The alternative to Iterable<Edge<I, E>> is Iterable<I>, returning only the target vertices, and you can call getEdgeValue(targetVertexId) on any of these if you need it. Again, many algorithms will simply do something like for(I targetId : vertex) { sendMsg(targetId, someFunction(baseMsg, getEdgeValue(targetId)); } which is maybe a little nicer looking (or at least not uglier) than: for(Edge<I, E> edge : vertex) { sendMsg(edge.getVertexId(), someFunction(baseMsg, edge.getValue()); } And then there are no Edge objects hanging around. Alternatively, Edge could act just like a typical Writable, and the Iterator<Edge<I, E>> iterates over the *same* Edge object setting different values on it as next() is called. > Introduce new primitive-specific MutableVertex subclasses > --------------------------------------------------------- > > Key: GIRAPH-28 > URL: https://issues.apache.org/jira/browse/GIRAPH-28 > Project: Giraph > Issue Type: New Feature > Components: graph > Affects Versions: 0.70.0 > Reporter: Jake Mannix > Assignee: Jake Mannix > Attachments: GIRAPH-28.diff, GIRAPH-28.diff > > > As discussed on the list, > MutableVertex<LongWritable,DoubleWritable,FloatWritable,DoubleWritable> (for > example) could be highly optimized in its memory footprint if the vertex and > edge data were held in a form which minimized Java object usage. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira