Seems that the string store is not optimal for the 'common' usage of
properties for names or labels, which are typically 5 to 20 characters long,
leading to about 5x (or more) space utilization than needed. By 'names or
labels' I mean things like username, tags, categorizations, product names,
etc. These seem like very common scenarios.

I guess there is no simple way of optimizing for this? At an app level it is
possible to pack a bunch of strings into a single property using, for
example, JSON. But that only makes sense if the usage is always to work with
them all as a unit.

On Mon, Jun 7, 2010 at 10:32 AM, Johan Svensson <[email protected]>wrote:

> Hi,
>
> These are the current record sizes in bytes that can be used to
> calculate the actual store size:
>
> nodestore: 9
> relationshipstore: 33
> propertystore: 25
> stringstore: 133
> arraystore: 133
>
> All properties except strings and arrays will take a single
> propertystore record (25 bytes). A string or array property will use
> one record from the propertystore then as many blocks needed from the
> string/array store file (each block of 133 bytes can store 120 bytes
> of data). This means if all your strings are in 120 bytes multiples in
> size you will make very efficient use of the store file while if they
> are empty you will not make very good use of the space (exactly like a
> normal filesystem taking up space for empty files).
>
> -Johan
>
> On Fri, Jun 4, 2010 at 9:15 AM, Mattias Persson
> <[email protected]> wrote:
> > That formula is correct regarding nodes and relationships, yes. When
> > properties comes into play another formula would, of course, have to
> > be applied. Depending on property types and length of keys/string
> > values it is different. It could be good though with a formula/tool to
> > calculate that.
> >
> > 2010/6/4, Biren Gandhi <[email protected]>:
> >> In that case, what are the ways to estimate storage capacity numbers?
> Basic
> >> formula of nodes*9 + edges*33 doesn't seem like a practical one.
> >>
> >> On Wed, Jun 2, 2010 at 11:26 PM, Mattias Persson
> >> <[email protected]>wrote:
> >>
> >>> String properties are stored in blocks so even if you have tiny string
> >>> values each property value will occupy a full block (30 or 60 bytes,
> >>> can someone correct me here?). That's what taking most of your space
> >>> IMHO
> _______________________________________________
> Neo4j mailing list
> [email protected]
> https://lists.neo4j.org/mailman/listinfo/user
>
_______________________________________________
Neo4j mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to