First of all, thank you all for your valuable input. There is still
some work to do so I'll get right on to commenting your comments :)


On 10/15/07, Johan Svensson <[EMAIL PROTECTED]> wrote:
> On 10/15/07, Björn Granvik <[EMAIL PROTECTED]> wrote:
> > Hi Klas,
> >
> > ...
> >
> > ** Meta model
> > *"Organizing your Nodespace" and subreferences pattern. This looks like
> > a poor man's meta model. I've lobbied for a proper meta model support in
> > Neo since there are many things one could do with a such a concept.
> > This example could drive for home-grown solution where a standard
> > support in Neo itself would to the trick for me.
> > The pattern in itself looks fine, apart from scaling, I guess. A couple
> > of millions of customers might not be too fun. Does anyone have
> > experience with scaling this pattern?
> >
>
> Yes. Use a linked list structure, from the "subreference node" have a
> NEXT_CUSTOMER relationship instead of a lot of CUSTOMER relationships
> to the customers. Or use a tree structure (each "tree node" is allowed
> to have 100k entries and so on). List structure works good when you
> only need to insert,delete and iterate over entries. Tree is better
> when you need to go from an entry to the "subreference node" (for
> example to find the type).
>

Ok, I have a few questions around this. First of all can you explain
more on how the linked list setup is better for performance than
connecting all customers to the subreference node? Does Neo have a
performance issue connecting alot of nodes to a single node and then
iterating over them?

Second, how do we feel about useability surrounding this issue? Maybe
it makes sense to connect the customers to eachother when we are
talking performance or node space optimization, but it doesn't feel
natural (at least for me) to connect the customers together if they
don't have a logical explanation for being connected (like being
friends etc..)

I believe it's very important to demonstrate that Neo is easy to use
and code for and I've tried to keep it simple in the guide.

Regarding the tree structure, I agree with this layout, but shouldn't
we base the node tree on some property of the customer such as Name or
Id, so that the tree structure make sense? To just do it would seem a
bit strange but then again, if there is a performance issue as
described above, we might have to do it?

As you have seen, my example already demand quite alot of coding just
to get a simple domain model, and I think this addition will add even
more code and complexity, so we have to ask ourselves if we need it.
At what number of estimated customers do we need this approach etc.

> Also note that Neo API only use Iterable/iterators (no arrays) for
> collections and I have on my todo list to make it that way all the way
> down to the native store.
>

That's great and my ambition is to make it so in the demo code as well.

Cheers
Klas
_______________________________________________
Neo mailing list
[email protected]
http://lists.neo4j.org/mailman/listinfo/user

Reply via email to