Skip to content

Database Benchmarks

lvca edited this page Dec 14, 2012 · 2 revisions

Orient Database Benchmarks

<wiki:toc max_depth="4" />

Introduction

Hey, I know. These are micro benchmarks and can't be taken as unique meter to compare products. However it's an index of the speed of the engine. Take it for what it is!

The tests aim to demonstrate the performance of all Database types.

All the speed test cases are located under the source folder: trunk/tests/src/test/java/com/orientechnologies/orient/test/database/speed

Scenario

1 DELL Notebook model XPS M1530 with Intel(r) Core Duo T7700 2.40Ghz, 3 GB RAM and HD 5.400rpm, O.S. MS Windows Vista, JRE 1.6.0_20

JRE Startup configuration: -server -XX:+UseParallelGC -XX:+AggressiveOpts -XX:CompileThreshold=200

NOTE: After some comparison with similar HW I found that OrientDB runs better on Windows and MacOsX systems. Linux seems to be slower than others because of EXT3 file system (EXT4 is much more slower again!) and maybe the JVM implementation even if it's the same release on the other systems

Massive insert of records

This test inserts 1,000,000 (one million) of records.

Comparison between local, remote and distributed

http://chart.apis.google.com/chart?chxt=x,y&chtt=Time+distribution+of+insertion+for+one+million+of+records&cht=lc&chxt=x,y&chxl=&chs=850x350&chd=t:334,165,194,118,279,110,255,112,238,109

Source Database type Database location Transaction mode **Total time elapsed** (less is better) **Requests per second** (more is better) Tested version
[Source](http://code.google.com/p/orient/source/browse/trunk/tests/src/test/java/com/orientechnologies/orient/test/database/speed/LocalCreateFlatSpeedTest.java) ODatabaseFlat memory no tx 1.91 seconds 510,464 0.9.9
[Source](http://code.google.com/p/orient/source/browse/trunk/tests/src/test/java/com/orientechnologies/orient/test/database/speed/LocalCreateFlatSpeedTest.java) ODatabaseFlat memory optimistic tx 2.31 seconds 422,475 0.9.9
[Source](http://code.google.com/p/orient/source/browse/trunk/tests/src/test/java/com/orientechnologies/orient/test/database/speed/LocalCreateFlatSpeedTest.java) ODatabaseFlat local no tx 4.72 seconds 209,248 0.9.8
[Source](http://code.google.com/p/orient/source/browse/trunk/tests/src/test/java/com/orientechnologies/orient/test/database/speed/LocalCreateFlatSpeedTest.java) ODatabaseFlat local optimistic tx 10.15 seconds 98,173 0.9.8
[Source](http://code.google.com/p/orient/source/browse/trunk/tests/src/test/java/com/orientechnologies/orient/test/database/speed/LocalCreateFlatSpeedTest.java) ODatabaseFlat remote no tx 75.82 seconds 13,189 0.9.8
[Source](http://code.google.com/p/orient/source/browse/trunk/tests/src/test/java/com/orientechnologies/orient/test/database/speed/LocalCreateFlatSpeedTest.java) ODatabaseFlat remote optimistic tx `#1` 13.23 seconds 75,437 0.9.8

#1 Remote connection benefits of optimistic transaction since it compress all the data and send it at the commit in one shot.

Comparison between Database types

http://chart.apis.google.com/chart?chxt=x,y&chtt=Time+distribution+of+insertion+for+one+million+of+records&cht=lc&chxt=x,y&chxl=&chs=900x250&chd=t:1209,334,338,364,351,344,340,342,382,566

Source Database type Database location **Total time elapsed** (less is better) **Requests per second** (more is better) Tested version
[Source](http://code.google.com/p/orient/source/browse/trunk/tests/src/test/java/com/orientechnologies/orient/test/database/speed/LocalCreateFlatSpeedTest.java) ODatabaseFlat local 4.72 seconds 209,248 0.9.8
[Source](http://code.google.com/p/orient/source/browse/trunk/tests/src/test/java/com/orientechnologies/orient/test/database/speed/LocalCreateDocumentSpeedTest.java) ODatabaseDocumentTx local 9.24 seconds 107,677 0.9.8
[Source](http://code.google.com/p/orient/source/browse/trunk/tests/src/test/java/com/orientechnologies/orient/test/database/speed/LocalCreateObjectSpeedTest.java) ODatabaseObjectTx local 14.98 seconds 66,431 0.9.9

Massive insert of pairs key/value

This test inserts 1,000,000 (one million) of pairs Key/Value. Consider that inserting pairs require much more effort than inserting records since records are indexed by the key.

http://chart.apis.google.com/chart?cht=lc&chd=s:GFILPTZjt9,HSSQPPNLJI&chs=900x250&chco=ff0000,000099&chf=bg,s,ffffff&chds=0,500&chtt=Time+and+throughput+distribution+of+insertion+for+one+million+of+entries+Key%2FValue&chdl=Elapsed+(less+is+better)

Source Database type Database location **Total time elapsed** (less is better) **Requests per second** (more is better) Tested version
[Source](http://code.google.com/p/orient/source/browse/trunk/tests/src/test/java/com/orientechnologies/orient/test/database/speed/DictionaryPutSpeedTest.java) ODatabaseFlat memory 16.89 seconds 59,017 0.9.9
[Source](http://code.google.com/p/orient/source/browse/trunk/tests/src/test/java/com/orientechnologies/orient/test/database/speed/DictionaryPutSpeedTest.java) ODatabaseFlat local 86.93 seconds 11,502 0.9.8
Clone this wiki locally