I looked at your messages.log

You should probably configure the memory mapping to use:
(conf/neo4j.properties)

neostore.nodestore.db.mapped_memory=100M
neostore.relationshipstore.db.mapped_memory=1G
neostore.propertystore.db.mapped_memory=1G
neostore.propertystore.db.strings.mapped_memory=200M
neostore.propertystore.db.arrays.mapped_memory=0M
neostore.relationshipgroupstore.db.mapped_memory=10M

On Mon, Nov 24, 2014 at 9:34 AM, Michael Hunger <
michael.hun...@neotechnology.com> wrote:

> :schema is for the neo4j browser
> for the shell and the /webadmin console it is "schema"
>
> How many of both of the nodes are there?
>
> MATCH (assy:Assy {k_ebene: 'MODEL'}) return count(*);
> MATCH (mat:Mat {m_matnr: "A4420380071"}) return count(*) ;
>
> I'll ask the Cypher team about the bug.
>
>
> Yes, the Java traversal would be many times faster,
>
> Either just going backwards from :Mat via
> node.getRelationships(Direction.INCOMING,
> DynamicRelationshipType.withName("HAS")) and then using rel.getStartNode()
> for the next level.
> Or using ShortestPath between the two
> Or using the TraversalDescription with the limit on relationship-type and
> direction
>
>
> On Mon, Nov 24, 2014 at 8:53 AM, <m...@docware.de> wrote:
>
>> Hello Michael,
>>
>> thanks already for your support:
>>
>> Am Sonntag, 23. November 2014 12:04:33 UTC+1 schrieb Michael Hunger:
>>>
>>> Just a few questions:
>>>
>>> * can you share your graph.db/messages.log for diagnostics on config.
>>>
>>>
>> it's attached
>>>
>>
>>
>>> * do you run your queries in the browser? or via the neo4j-shell? or
>>> from a program?
>>> in Browser at adress http://localhost:7474/webadmin/ (Data Browser)
>>>
>>
>>
>>> * what does the output of :schema look like?
>>>
>> Sorry, I don't know what you mean. Entering ":schema" gives an error.
>>
> "schema" in the shell
>
>>
>>> * what is the maximum depth in your tree?
>>> 5 in the actual case; for other DBs it could be deeper but deeper than
>>> 10 would be unlikely
>>>
>>
>>
>>> * can you try to prefix your query with cypher 2.1.experimental (which
>>> is the new query planner)
>>>
>> Yeah, 1,8s compared to 11s :-)
>>
>>>
>>> * as you bound both nodes and you have a tree, what you're interested in
>>> is the shortest path between those (I think)
>>>
>>> MATCH (assy:Assy {k_ebene: 'MODEL'}), (mat:Mat {m_matnr: "A4420380071"})
>>> MATCH shortestPath((assy)-[:HAS*..]->(mat))
>>> RETURN distinct assy.k_vari order by assy.k_vari limit 1000
>>>
>>> This is slower, took 72s
>>
> hmm interesting, perhaps the two node-counts form a cross-product
>
>
>> Our graphs are always shortest paths without need to specifying this.
>> Once a "MODEL" node have been reached, there are no more "MODEL" nodes
>> deeper.
>>
>>
>>> * how many paths does this return?
>>>
>>> MATCH (assy:Assy {k_ebene: 'MODEL'})-[:HAS*..]->(mat:Mat {m_matnr:
>>> "A4420380071"})
>>> RETURN count(*)
>>>
>>> ca. 28000
>>
>>
>>> I asusme that :Mat is more selective, so can you try using:
>>>
>>> MATCH (assy:Assy {k_ebene: 'MODEL'})-[:HAS*..]->(mat:Mat {m_matnr:
>>> "A4420380071"})
>>> USING INDEX mat:Mat(m_matnr)
>>> RETURN count(*)
>>>
>>> no difference
>>
> -> I meant in timing not in count :)
>
>>
>>
>>> Depending the # of returned paths, sorting all of them by assy.k_vari
>>> can take time too, same for creating the distin
>>>
>>> can you try how much time this takes?
>>>
>>> MATCH (assy:Assy {k_ebene: 'MODEL'})-[:HAS*..]->(mat:Mat {m_matnr:
>>> "A4420380071"})
>>> RETURN distinct assy.k_vari
>>>
>>> no difference. I tested already with/without distince and/or order by
>>
>
> yes path matching still has an issue in the current rule based cypher
> impl, while it should actually be instant
>
>>
>>
>
>> So thank you already for telling me how to use the new query planner. Do
>> you think writing a Java custom transversal would further help us? I think
>> of implementing a whitelist/blacklist mechanism as you do for our SQL
>> Server client transversal. There are other situations where the traversal
>> must stop at nodes meeting certain properties. I think this would a reason
>> for a custom transversal tool.
>>
>> Thanks a lot so far
>>
>> Michael S.
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Neo4j" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to neo4j+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to neo4j+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to