Krish Muruga | 1 May 14:14 2013

Unexpectedly newer NEO4J versions significantly slower on Inserts using REST

We are running some bench marks using REST to test out insert performance. The tests were done on three NEO4J version on the same hardware and java version and memory settings (8 G Heap size). The code creates roughly equal number of nodes (8360223), relationships (8520536) and properties (8360540), the inserts per minute are each version is as follows:

Neo 1.8 = 136323/minute

Neo 1.8.2 = 119502/minute

Neo 1.9.M05= 29745/minute

All these test started with an empty database using the same client code to insert the data.  Since 1.9 was much slower I rebooted the machine ran it again, the numbers were almost the same the second time too.

Any explanation as to why newer versions are slower?

--
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+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit https://groups.google.com/groups/opt_out.
 
 
Max De Marzi Jr. | 2 May 09:17 2013
Picon

Re: Unexpectedly newer NEO4J versions significantly slower on Inserts using REST

Krish,


Can you tell us exactly what you are doing for your tests?

I just tried running basic node and relationship creation on 1.8.2, 1.9.M05 and 1.9.RC2 and they were all pretty much the same.

Repo => https://github.com/maxdemarzi/gatling_neo

On Wednesday, May 1, 2013 7:14:40 AM UTC-5, Krish Muruga wrote:

We are running some bench marks using REST to test out insert performance. The tests were done on three NEO4J version on the same hardware and java version and memory settings (8 G Heap size). The code creates roughly equal number of nodes (8360223), relationships (8520536) and properties (8360540), the inserts per minute are each version is as follows:

Neo 1.8 = 136323/minute

Neo 1.8.2 = 119502/minute

Neo 1.9.M05= 29745/minute

All these test started with an empty database using the same client code to insert the data.  Since 1.9 was much slower I rebooted the machine ran it again, the numbers were almost the same the second time too.

Any explanation as to why newer versions are slower?

--
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+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit https://groups.google.com/groups/opt_out.
 
 
S Chidambaran | 2 May 13:10 2013
Picon

Re: Re: Unexpectedly newer NEO4J versions significantly slower on Inserts using REST

I ran some tests on different versions a while back, but did not see what Krish is saying. Do you mind sharing your code, Krish?

Regards
Chiddu

On 05/02/2013 12:47 PM, Max De Marzi Jr. wrote:
Krish,

Can you tell us exactly what you are doing for your tests?

I just tried running basic node and relationship creation on 1.8.2, 1.9.M05 and 1.9.RC2 and they were all pretty much the same.

Repo => https://github.com/maxdemarzi/gatling_neo

On Wednesday, May 1, 2013 7:14:40 AM UTC-5, Krish Muruga wrote:

We are running some bench marks using REST to test out insert performance. The tests were done on three NEO4J version on the same hardware and java version and memory settings (8 G Heap size). The code creates roughly equal number of nodes (8360223), relationships (8520536) and properties (8360540), the inserts per minute are each version is as follows:

Neo 1.8 = 136323/minute

Neo 1.8.2 = 119502/minute

Neo 1.9.M05= 29745/minute

All these test started with an empty database using the same client code to insert the data.  Since 1.9 was much slower I rebooted the machine ran it again, the numbers were almost the same the second time too.

Any explanation as to why newer versions are slower?

--
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+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

--
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+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Krish Muruga | 2 May 21:19 2013

Re: Unexpectedly newer NEO4J versions significantly slower on Inserts using REST

Hi Max,

The Code is creating about 4 million each of Nodes, Relationships and Properties using a java program via REST calls to localhost:7474 running on the same machine as NEO.
The program is creating 4 divisions distributed among 100 users assigned a random role from a list of 5
There are also 5 Years Nodes with 4 Quarters, for each quarter there are 500 parts and each part has 2 subparts. On every part and Subpart there are 50 History nodes and 50 discussion node.  Also every part/subpart is related to one of 5 state objects.

I am running on on Windows using JVM 1.7.0.17
The only changes to the download Neo binaries are
on neo4j.properties added the following

# Default values for the low-level graph engine
neostore.nodestore.db.mapped_memory=4G
neostore.relationshipstore.db.mapped_memory=4G
neostore.propertystore.db.mapped_memory=2G
neostore.propertystore.db.strings.mapped_memory=2G
neostore.propertystore.db.arrays.mapped_memory=130M

and on neo4j-wrapper.com
wrapper.java.initmemory=8192
wrapper.java.maxmemory=8192


These numbers are using the exact program against different version with the same config changes.  In addition I tried the 2.0.0 M02 and it seems to be on par with 1.8.2 numbers.





On Thursday, May 2, 2013 3:17:55 AM UTC-4, Max De Marzi Jr. wrote:
Krish,

Can you tell us exactly what you are doing for your tests?

I just tried running basic node and relationship creation on 1.8.2, 1.9.M05 and 1.9.RC2 and they were all pretty much the same.

Repo => https://github.com/maxdemarzi/gatling_neo

On Wednesday, May 1, 2013 7:14:40 AM UTC-5, Krish Muruga wrote:

We are running some bench marks using REST to test out insert performance. The tests were done on three NEO4J version on the same hardware and java version and memory settings (8 G Heap size). The code creates roughly equal number of nodes (8360223), relationships (8520536) and properties (8360540), the inserts per minute are each version is as follows:

Neo 1.8 = 136323/minute

Neo 1.8.2 = 119502/minute

Neo 1.9.M05= 29745/minute

All these test started with an empty database using the same client code to insert the data.  Since 1.9 was much slower I rebooted the machine ran it again, the numbers were almost the same the second time too.

Any explanation as to why newer versions are slower?

--
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+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit https://groups.google.com/groups/opt_out.
 
 
Krish Muruga | 6 May 14:52 2013

Re: Unexpectedly newer NEO4J versions significantly slower on Inserts using REST

I reran these tests again to verify after rechecking my setting to be consistent with various versions, I also let it run to completion creating a larger data set. 


The total objects:
nodes:8360223
properties:8360540
relationships:8520536
database file size: 2288 MB

Time in Milliseconds:
Neo 1.8:               4733447
Neo 1.8.2:            6620031
Neo 1.9:M05       18190773
Neo 1.9.RC2       18571295
Neo 2.0.0.M02      6021388


Any thoughts?


On Thursday, May 2, 2013 3:19:40 PM UTC-4, Krish Muruga wrote:
Hi Max,
The Code is creating about 4 million each of Nodes, Relationships and Properties using a java program via REST calls to localhost:7474 running on the same machine as NEO.
The program is creating 4 divisions distributed among 100 users assigned a random role from a list of 5
There are also 5 Years Nodes with 4 Quarters, for each quarter there are 500 parts and each part has 2 subparts. On every part and Subpart there are 50 History nodes and 50 discussion node.  Also every part/subpart is related to one of 5 state objects.

I am running on on Windows using JVM 1.7.0.17
The only changes to the download Neo binaries are
on neo4j.properties added the following

# Default values for the low-level graph engine
neostore.nodestore.db.mapped_memory=4G
neostore.relationshipstore.db.mapped_memory=4G
neostore.propertystore.db.mapped_memory=2G
neostore.propertystore.db.strings.mapped_memory=2G
neostore.propertystore.db.arrays.mapped_memory=130M

wrapper.java.initmemory=8192
wrapper.java.maxmemory=8192


These numbers are using the exact program against different version with the same config changes.  In addition I tried the 2.0.0 M02 and it seems to be on par with 1.8.2 numbers.





On Thursday, May 2, 2013 3:17:55 AM UTC-4, Max De Marzi Jr. wrote:
Krish,

Can you tell us exactly what you are doing for your tests?

I just tried running basic node and relationship creation on 1.8.2, 1.9.M05 and 1.9.RC2 and they were all pretty much the same.

Repo => https://github.com/maxdemarzi/gatling_neo

On Wednesday, May 1, 2013 7:14:40 AM UTC-5, Krish Muruga wrote:

We are running some bench marks using REST to test out insert performance. The tests were done on three NEO4J version on the same hardware and java version and memory settings (8 G Heap size). The code creates roughly equal number of nodes (8360223), relationships (8520536) and properties (8360540), the inserts per minute are each version is as follows:

Neo 1.8 = 136323/minute

Neo 1.8.2 = 119502/minute

Neo 1.9.M05= 29745/minute

All these test started with an empty database using the same client code to insert the data.  Since 1.9 was much slower I rebooted the machine ran it again, the numbers were almost the same the second time too.

Any explanation as to why newer versions are slower?

--
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+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit https://groups.google.com/groups/opt_out.
 
 
Michael Hunger | 7 May 00:32 2013

Re: Unexpectedly newer NEO4J versions significantly slower on Inserts using REST

Krish,

thanks for the notification.

Neo4j 2.0 contains some pretty heavy rewrites of internals which caused some performance degradation. We are aware of it and will address those in the near future.

Thanks a lot

Michael

Am 06.05.2013 um 14:52 schrieb Krish Muruga <krish.muruga-O8UaqwguDjiakBO8gow8eQ@public.gmane.org>:

I reran these tests again to verify after rechecking my setting to be consistent with various versions, I also let it run to completion creating a larger data set. 

The total objects:
nodes:8360223
properties:8360540
relationships:8520536
database file size: 2288 MB

Time in Milliseconds:
Neo 1.8:               4733447
Neo 1.8.2:            6620031
Neo 1.9:M05       18190773
Neo 1.9.RC2       18571295
Neo 2.0.0.M02      6021388


Any thoughts?


On Thursday, May 2, 2013 3:19:40 PM UTC-4, Krish Muruga wrote:
Hi Max,
The Code is creating about 4 million each of Nodes, Relationships and Properties using a java program via REST calls to localhost:7474 running on the same machine as NEO.
The program is creating 4 divisions distributed among 100 users assigned a random role from a list of 5
There are also 5 Years Nodes with 4 Quarters, for each quarter there are 500 parts and each part has 2 subparts. On every part and Subpart there are 50 History nodes and 50 discussion node.  Also every part/subpart is related to one of 5 state objects.

I am running on on Windows using JVM 1.7.0.17
The only changes to the download Neo binaries are
on neo4j.properties added the following

# Default values for the low-level graph engine
neostore.nodestore.db.mapped_memory=4G
neostore.relationshipstore.db.mapped_memory=4G
neostore.propertystore.db.mapped_memory=2G
neostore.propertystore.db.strings.mapped_memory=2G
neostore.propertystore.db.arrays.mapped_memory=130M

wrapper.java.initmemory=8192
wrapper.java.maxmemory=8192


These numbers are using the exact program against different version with the same config changes.  In addition I tried the 2.0.0 M02 and it seems to be on par with 1.8.2 numbers.





On Thursday, May 2, 2013 3:17:55 AM UTC-4, Max De Marzi Jr. wrote:
Krish,

Can you tell us exactly what you are doing for your tests?

I just tried running basic node and relationship creation on 1.8.2, 1.9.M05 and 1.9.RC2 and they were all pretty much the same.

Repo => https://github.com/maxdemarzi/gatling_neo

On Wednesday, May 1, 2013 7:14:40 AM UTC-5, Krish Muruga wrote:

We are running some bench marks using REST to test out insert performance. The tests were done on three NEO4J version on the same hardware and java version and memory settings (8 G Heap size). The code creates roughly equal number of nodes (8360223), relationships (8520536) and properties (8360540), the inserts per minute are each version is as follows:

Neo 1.8 = 136323/minute

Neo 1.8.2 = 119502/minute

Neo 1.9.M05= 29745/minute

All these test started with an empty database using the same client code to insert the data.  Since 1.9 was much slower I rebooted the machine ran it again, the numbers were almost the same the second time too.

Any explanation as to why newer versions are slower?


--
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+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

--
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+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit https://groups.google.com/groups/opt_out.
 
 


Gmane