Bård,

Great to hear you're evaluating us for your solution.

I have a couple of questions. First, how much RAM do you have in the
machine, and how much heap are you allocating for the Java process? Peter's
question about running it multiple times is also very relevant.

Secondly, I'd like to understand your use case a bit more. You have an ACL
style graph. Your query is then, given a user, give me all customer
resources that the user has some kind of access to. How is this result set
then used? I'd appreciate it if you could outline your use cases a bit more.
For example, maybe you're trying to check whether a user has access to a
certain resource. Retrieving all resources for that user would not be the
most efficient way of doing that. If you could shed some more light on this,
then maybe we can find a better way forward.

Thanks,
David

On Mon, Mar 7, 2011 at 6:46 AM, Bård Lind <bard.l...@gmail.com> wrote:

> Hi!
>
> First really good work you are doing on the Neo4J project! Really
> appreciate the good level of documentation as well!
>
> Currently I'm running a POC for validating if we can use Graph and
> Neo4J when we want to filter/ACL user-access to resources.
> Our concept is much like your example here
> http://blog.neo4j.org/2010/02/access-control-lists-graph-database-way.html
> .
> We have Users, Profiles in one graph (left hand side), and then a
> Customer hierarchal graph on the right side. Access are controlled
> from a Profile to a given Customer Resource with Read, Write and/or
> Inherit.
>
> All is well functionally wise, though I have had slower response than
> I expected.
> Scenario:
> 1. The database is loaded with 175 000 nodes, and aprox the same
> number of relations.
> 2. From a single user, fetch all resources this user has access to.
> user -> profile -> security -> graph of customers, at 1-6 levels.
>
> When the graph of customers has few nodes ,aprox 200 the response is
> 30 ms, which is good.
> When the graph returns 170 000 (of 175 000) nodes, the response is
> slow 7 seconds!
>
> This test was run on a laptop with SSD disk.
>
> Other things I have tried:
> - Running on ultra-fast Ubuntu: took 3,5 sec. Still way slower than I hoped
> for.
> - Setting up to prefer traversal speed from these pages:
> http://wiki.neo4j.org/content/Performance_Guide and
> http://wiki.neo4j.org/content/Configuration_Settings
> - Simpler Traverser and/or TraversalDescription filters. Still pretty slow.
>
> Facts:
> - Neo4j 1.3-M03
> - Java 1.6.0_24
> - Running the Embeded Neo4j server.
> - Currently 175 000 nodes, full implementation will have aprox 5 mill
> resources, largest sub-graph will have some 500 000 nodes.
>
> The real question is really if 3,5 sec for fetching 170k nodes is
> expected, or is it possible to tune retrieval to less than a second?
>
> Thanks in advance.
>
> Bård (or Bard for non Scandinavian letters :-) )
> _______________________________________________
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>



-- 
David Montag
Neo Technology, www.neotechnology.com
Cell: 650.556.4411
david.mon...@neotechnology.com
_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to