Hi Liu, I'm forwarding your question to our google group [email protected] Please provide any additional information there.
best, Aileen Agricola Web Program Manager | Neo Technology [email protected] | 206.437.2524 *Join us at GraphConnect 2014 SF! graphconnect.com <http://graphconnect.com/>* *As a friend of Neo4j, use discount code *KOMPIS <https://graphconnect2014sf.eventbrite.com/?discount=KOMPIS>* for $100 off registration* On Mon, Oct 27, 2014 at 8:08 AM, LIU Xiaobing <[email protected]> wrote: > Hi experts, > Now I encountering one performance problem about neo4j. I try to write > some data to neo4j, the data scale is about billions and the relationships > between the data is just people-people. When I use py2neo to query and > write data to neo4j, i found that it's very slow. > The query clause i use: > create_rels = 'MERGE(first:{TYPE1} {{id:'{val1}'}}) MERGE > (second:{TYPE2} {{id:'{val2}'}}) MERGE (first)-[r:{RTYPE}]->(second) ON > CREATE SET r.weight={weight_set} ON MATCH SET {weight_compute} WITH r SET > r.half_life={half_life},r.update_time=TIMESTAMP(),r.threshold={threshold} > WITH r WHERE r.weight<r.threshold DELETE r' > > self.query=neo.CypherQuery(self.graph_db,self.create_rels.format(TYPE1=entity1[0],val1=entity1[1],TYPE2=entity2[0],val2=entity2[1],RTYPE=rel_type,weight_set=weight_set,weight_compute=CYPHER_WEIGHT_COMPUTE,half_life=half_life,threshold=threshold)) > self.query.execute() > > the CYPHER_WEIGHT_COMPUTE definition is > "r.weight=r.weight+r.weight*EXP((TIMESTAMP()-r.update_time)/(r.half_life*1.0))" > > The purpose of the clause is that the nodes and relationships will be > created when the nodes are not in graph db and the properties of > relationships will be update if they are. > I have tried such ways to gain the performance, but it didn't work > well. > 1) configure the configure file of server > neo4j-wrapper.conf: > wrapper.java.initmemory=4096 > wrapper.java.maxmemory=4096 > wrapper.java.minmemory=4096 > > neo4j.properties > neostore.nodestore.db.mapped_memory=256M > neostore.relationshipstore.db.mapped_memory=256M > neostore.propertystore.db.mapped_memory=256M > neostore.propertystore.db.strings.mapped_memory=128M > neostore.propertystore.db.arrays.mapped_memory=128M > > node_auto_indexing=true > relationship_auto_indexing=true > > 2) Create constraints of the properties of nodes in order to create > indexes > Cypher clause: create constraint on (n:UID) assert n.id IS UNIQUE > > When i check the load of server who's equipped with 16 4-core > processors, i found that the cpu's load is very high while the network and > io's load is not. Does Cypher clause is cpu-greedy? How can i dig the > performance using other ways? Thanks very much. > > By the way, the version of neo4j is 2.1.5 stable verion, version of client > py2neo is 1.1.6, RAM of the server is 8G > > > -- > Best Regards > LIU Xiaobing 刘小兵 > > -- 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.
