[ https://issues.apache.org/jira/browse/GIRAPH-528?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alessandro Presta updated GIRAPH-528: ------------------------------------- Attachment: GIRAPH-528.patch > Decouple vertex implementation from edge storage > ------------------------------------------------ > > Key: GIRAPH-528 > URL: https://issues.apache.org/jira/browse/GIRAPH-528 > Project: Giraph > Issue Type: Improvement > Reporter: Alessandro Presta > Assignee: Alessandro Presta > Attachments: GIRAPH-528.patch, GIRAPH-528.patch, GIRAPH-528.patch, > GIRAPH-528.patch, GIRAPH-528.patch > > > This is meant to address the following issues: > 1) The Vertex hierarchy is too complex and sometimes hard to work with > (Vertex, SimpleVertex, MutableVertex, SimpleMutableVertex...). > 2) Changing the underlying edge storage implementation for an existing > algorithm requires editing your vertex to extend a different one. > 3) In the general case (e.g. when not using ByteArrayVertex with the current > EdgeStore), moving edges from the EdgeStore to the vertices is an additional > step that can be avoided. > My proposal is the following: > - Make EdgeStore an interface. An implementation should deal with > (concurrent) insertion of edges during input superstep; iteration over a > vertex's edges during computation; insertion/deletion of edges during > mutations (optional?); checkpointing. > - The default EdgeStore will be the current byte-array implementation, which > is generic (works with any choice of <I, V, E, M>) and reasonably optimized. > - Only one Vertex class, which the user extends for the sole purpose of > defining compute(). I don't necessarily agree that it should be an interface, > because we still want to provide methods like getEdges(), sendMessage(), and > those should delegate to the EdgeStore/MessageStore of choice. > - Switching edge storage implementation is done by passing the EdgeStore > class as an option. One can also define his own ad-hoc EdgeStore (e.g., > backed by primitive arrays). > I think we should also extend this idea to MessageStore, making it possible > to override that functionality too. -- 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