Environment 1
Intel(R) Xeon(R) CPU X3430 @ 2.40GHz
Cores: 4
8 MB Cache
Memory : 6GB
ulimit : 1024
OS : CentOS 5.4
Riak : 1.1
MySQL 5.1 (Highly tuned system)
Test data :
Object : username, email, id
Both test's were run from Java clients
To make this test little meaningful I've send each read/write command to mysql in its own request.
MySQL Single Node (time in ms)
inserts : 50, time : 871
inserts : 100, time : 324
inserts : 200, time : 835
inserts : 500, time : 1936
inserts : 1000, time : 3275
gets : 50, time : 55
gets : 100, time : 60
gets : 200, time : 119
gets : 500, time : 304
gets : 1000, time : 582
Riak Single Node (Recommended is 3 Nodes)
inserts : 50, time : 461
inserts : 100, time : 486
inserts : 200, time : 1473
inserts : 500, time : 3609
inserts : 1000, time : 6442
gets : 50, time : 2296
gets : 100, time : 4501
gets : 200, time : 9028
gets : 500, time : 22496
gets : 1000, time : 44981
Environment 2
Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz
Cores: 2
Memory : 4GBulimit : 1024
OS : MacOS 10.6
Riak : 1.1
MySQL 5.1 (Highly tuned system)
Test data :
Object : username, email, id (No constraints, No indexes)
To make this test little meaningful I've send each read/write command to mysql in its own request.
MySQL Single Node (time in ms)
inserts : 50, time : 1606
inserts : 100, time : 288
inserts : 200, time : 515
inserts : 500, time : 1277
inserts : 1000, time : 2399
gets : 50, time : 46
gets : 100, time : 38
gets : 200, time : 69
gets : 500, time : 245
gets : 1000, time : 753
RIAK
inserts : 50, time : 1032
inserts : 100, time : 1389
inserts : 200, time : 2555
inserts : 500, time : 6408
inserts : 1000, time : 10777
gets : 50, time : 654
gets : 100, time : 1308
gets : 200, time : 2157
gets : 500, time : 5062
gets : 1000, time : 8722
MongoDB
inserts : 150 time: 165
inserts : 10000 time: 2623
inserts : 20000 time: 2128
inserts : 50000 time: 2926
inserts : 100000 time: 5833
inserts : 200000 time: 16862
inserts : 500000 time: 29535
inserts : 1000000 time: 69929
Database size and count
database size : 0.953125GB
Object count : 20,83,700
get : 150 time: 58
get : 1100 time: 109
get : 2200 time: 193
get : 3500 time: 768
get : 5000 time: 1977
Test code
https://github.com/intesar/Riak-Perf-1
https://github.com/intesar/MySQL-Perf1
https://github.com/intesar/MongoDB-Perf1
Comments
This kind of technology performance comparison are really valuable...
If you allow me just a cosmetic suggestion: Presenting the results in table format would allow visualizing them better.
It might be time-consuming. I know
Thank you
jD @ http://pragmatikroo.blogspot.com
Thus, your numbers are 3x higher using Riak than they should be.
When doing tests, make sure you're taking a 'tuned' vs 'tuned' and not making huge architectural errors or it skews your results, such as this blog entry.