Hi,
I am relatively new to neo4j. I have implemented a traversal algorithm
using neo4j as underlying graph storage.
Graph has about 40K nodes and about 2M edges.
Using 2.1.2 community version of neo4j embedded. It is hosted as service in
tomcat7 with allocated 6Gb of memory on 14.04 Ubuntu.
Following is a piece of code which does numeric index queries.
*RelationshipIndex numericIndex
= graphDb.index().forRelationships(Constants.RELATIONSHIP_INDEX);*
* public Relationship getRelationship(Node n, int lowerlimit, int
upperlimit) throws Exception {*
* long t1 = System.currentTimeMillis();*
* IndexHits<Relationship> hits =
numericIndex.query(QueryContext.numericRange("start_time", lowerlimit,
upperlimit, true, true), n, null);*
* long t2 = System.currentTimeMillis();*
* time_spent_in_numeric_index_queries += t2-t1; // global variable*
* // do something on hits and return a relationship
from it*
* }*
for a single threaded traversal time_spent_in_numeric_index_queries ~= 1
sec.
but if i do multiple traversals ( same traversal ) in parallel ,
time_spent_in_numeric_index_queries increases linearly . for 10 calls in
parallel it takes ~= 5 sec.
Also, i am only doing read operations throughout .
I want to know, how does querying work? Does it each query lock the entire
index?
Thanks,
Ashish
--
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 [email protected].
For more options, visit https://groups.google.com/d/optout.