Return-Path: X-Original-To: apmail-giraph-dev-archive@www.apache.org Delivered-To: apmail-giraph-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 5EC30E195 for ; Thu, 7 Mar 2013 06:16:17 +0000 (UTC) Received: (qmail 74606 invoked by uid 500); 7 Mar 2013 06:16:16 -0000 Delivered-To: apmail-giraph-dev-archive@giraph.apache.org Received: (qmail 74415 invoked by uid 500); 7 Mar 2013 06:16:15 -0000 Mailing-List: contact dev-help@giraph.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@giraph.apache.org Delivered-To: mailing list dev@giraph.apache.org Received: (qmail 74354 invoked by uid 500); 7 Mar 2013 06:16:13 -0000 Delivered-To: apmail-incubator-giraph-dev@incubator.apache.org Received: (qmail 74322 invoked by uid 99); 7 Mar 2013 06:16:12 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Mar 2013 06:16:12 +0000 Date: Thu, 7 Mar 2013 06:16:12 +0000 (UTC) From: "Avery Ching (JIRA)" To: giraph-dev@incubator.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (GIRAPH-528) Decouple vertex implementation from edge storage MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/GIRAPH-528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13595592#comment-13595592 ] Avery Ching commented on GIRAPH-528: ------------------------------------ [~apresta], uh oh. Looks like a legit error. Can you take a look? https://builds.apache.org/job/Giraph-trunk-Commit/784/console > 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, 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 ) 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