You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Marko A. Rodriguez (JIRA)" <ji...@apache.org> on 2015/04/10 20:41:12 UTC

[jira] [Comment Edited] (TINKERPOP3-609) Reduce the memory footprint of Gryo

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

Marko A. Rodriguez edited comment on TINKERPOP3-609 at 4/10/15 6:40 PM:
------------------------------------------------------------------------

[~spmallette] I think this is as easy as making {{StarGraph}} a "serialization exception" like {{DetachedXXX}} and {{ReferenceXXX}}. Star graph already does most of the above and can do all:

* Edges only have the other id. (*done*)
* Edges don't have a property field if they don't have properties. (*done*)
* Adjacent vertices don't exist, but are generated on the fly from {{Edge.in/outVertex}}. (*done*)
* Edge labels should be "enum'd". (*to do*)
* Vertex property meta-properties don't have a meta-properties field if they don't exist. (*done*)

In this way, I think that "readVertex(Direction)" and "writeVertex(Direction)" could just serialize {{StarGraph}}?!

Easy easy lemon squeezy. Thoughts?


was (Author: okram):
[~spmallette] I think this is as easy as making {{StarGraph}} and "serialization exception" like {{DetachedXXX}} and {{ReferenceXXX}}. Star graph already does most of the above and can do all:

* Edges only have the other id. (*done*)
* Edges don't have a property field if they don't have properties. (*done*)
* Adjacent vertices don't exist, but are generated on the fly from {{Edge.in/outVertex}}. (*done*)
* Edge labels should be "enum'd". (*to do*)
* Vertex property meta-properties don't have a meta-properties field if they don't exist. (*done*)

In this way, I think that "readVertex(Direction)" and "writeVertex(Direction)" could just serialize {{StarGraph}}?!

Easy easy lemon squeezy. Thoughts?

> Reduce the memory footprint of Gryo
> -----------------------------------
>
>                 Key: TINKERPOP3-609
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP3-609
>             Project: TinkerPop 3
>          Issue Type: Improvement
>          Components: io
>            Reporter: Marko A. Rodriguez
>            Assignee: stephen mallette
>            Priority: Critical
>             Fix For: 3.0.0.GA
>
>
> A 1 million vertex graph with 1 edge each is a 150meg file. That is 150 bytes per vertex/edge.
> If the vertex id is a long that is 4 bytes.
> If the edge id is a long that is 4 bytes.
> The edge should only have ONE id for the otherV of 4 bytes.
> The edge label should be somehow "enum'd" and 1 byte.
> The vertex label should be somehow "enum'd" and 1 byte.
> Add 2-3 bytes for terminators.
> Thus, we should be able to get away with a 17 byte representation (assuming no variable width encodings) and thus, a 17 meg file. That is a near 10x file size reduction. 



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