Looking at some simple comparisons to InnoDB to get a gauge of where the
performance bottlenecks are occurring.
These tests are based on a simple server (quad-core 64bit 4GB on single disk).
The first one is read-only comparison.
No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 8
Forcing shutdown in 121 seconds
Doing OLTP test.
Running mixed OLTP test
Doing read-only test
Using Uniform distribution
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Threads started!
Time limit exceeded, exiting...
(last message repeated 7 times)
Done.
OLTP test statistics:
queries performed:
read: 1526868
write: 0
other: 218124
total: 1744992
transactions: 109062 (908.83 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 1526868 (12723.67 per sec.)
other operations: 218124 (1817.67 per sec.)
Test execution summary:
total time: 120.0022s
total number of events: 109062
total time taken by event execution: 959.5918
per-request statistics:
min: 1.51ms
avg: 8.80ms
max: 1536.74ms
approx. 95 percentile: 6.49ms
Threads fairness:
events (avg/stddev): 13632.7500/337.64
execution time (avg/stddev): 119.9490/0.00
No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 8
Forcing shutdown in 121 seconds
Doing OLTP test.
Running mixed OLTP test
Doing read-only test
Using Uniform distribution
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Threads started!
Time limit exceeded, exiting...
(last message repeated 7 times)
Done.
OLTP test statistics:
queries performed:
read: 1619380
write: 0
other: 231340
total: 1850720
transactions: 115670 (963.89 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 1619380 (13494.41 per sec.)
other operations: 231340 (1927.77 per sec.)
Test execution summary:
total time: 120.0038s
total number of events: 115670
total time taken by event execution: 959.5311
per-request statistics:
min: 1.50ms
avg: 8.30ms
max: 2842.54ms
approx. 95 percentile: 9.40ms
Threads fairness:
events (avg/stddev): 14458.7500/216.88
execution time (avg/stddev): 119.9414/0.00
So close comparison to start which is not bad considering the lack of
development of SolidDB for the last few years.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It was interesting that after I had to restart my server I thought I would try
the test again on a "fresh" machine. The results were actually quite different
so I ran the tests multiple times for each engine with close the same result
each time.
No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 8
Forcing shutdown in 121 seconds
Doing OLTP test.
Running mixed OLTP test
Doing read-only test
Using Uniform distribution
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Threads started!
Time limit exceeded, exiting...
(last message repeated 7 times)
Done.
OLTP test statistics:
queries performed:
read: 2426620
write: 0
other: 346660
total: 2773280
transactions: 173330 (1444.38 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 2426620 (20221.29 per sec.)
other operations: 346660 (2888.76 per sec.)
Test execution summary:
total time: 120.0032s
total number of events: 173330
total time taken by event execution: 959.4520
per-request statistics:
min: 1.80ms
avg: 5.54ms
max: 40.55ms
approx. 95 percentile: 7.04ms
Threads fairness:
events (avg/stddev): 21666.2500/383.74
execution time (avg/stddev): 119.9315/0.00
No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 8
Forcing shutdown in 121 seconds
Doing OLTP test.
Running mixed OLTP test
Doing read-only test
Using Uniform distribution
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Threads started!
Time limit exceeded, exiting...
(last message repeated 7 times)
Done.
OLTP test statistics:
queries performed:
read: 2088744
write: 0
other: 298392
total: 2387136
transactions: 149196 (1243.24 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 2088744 (17405.37 per sec.)
other operations: 298392 (2486.48 per sec.)
Test execution summary:
total time: 120.0057s
total number of events: 149196
total time taken by event execution: 959.4558
per-request statistics:
min: 1.72ms
avg: 6.43ms
max: 80.76ms
approx. 95 percentile: 9.13ms
Threads fairness:
events (avg/stddev): 18649.5000/148.58
execution time (avg/stddev): 119.9320/0.00
Not the tables have turned and SolidDB is performing at a higher throughput
that InnoDB. I realise this has no specific tuning available for the engines
yet, simply setting the buffer size to be around the recommended size for the
engines, but it is a good starting comparison.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 8
Forcing shutdown in 121 seconds
Doing OLTP test.
Running mixed OLTP test
Using Uniform distribution
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Threads started!
Time limit exceeded, exiting...
(last message repeated 7 times)
Done.
OLTP test statistics:
queries performed:
read: 72380
write: 25794
other: 10323
total: 108497
transactions: 5153 (42.71 per sec.)
deadlocks: 17 (0.14 per sec.)
read/write requests: 98174 (813.75 per sec.)
other operations: 10323 (85.57 per sec.)
Test execution summary:
total time: 120.6441s
total number of events: 5153
total time taken by event execution: 963.0285
per-request statistics:
min: 106.88ms
avg: 186.89ms
max: 9300.04ms
approx. 95 percentile: 264.16ms
Threads fairness:
events (avg/stddev): 644.1250/1.62
execution time (avg/stddev): 120.3786/0.24
No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 8
Forcing shutdown in 121 seconds
Doing OLTP test.
Running mixed OLTP test
Using Uniform distribution
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Threads started!
Time limit exceeded, exiting...
(last message repeated 7 times)
Done.
OLTP test statistics:
queries performed:
read: 33614
write: 12005
other: 4802
total: 50421
transactions: 2401 (19.95 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 45619 (379.11 per sec.)
other operations: 4802 (39.91 per sec.)
Test execution summary:
total time: 120.3313s
total number of events: 2401
total time taken by event execution: 962.4001
per-request statistics:
min: 71.86ms
avg: 400.83ms
max: 2087.14ms
approx. 95 percentile: 1475.68ms
Threads fairness:
events (avg/stddev): 300.1250/2.98
execution time (avg/stddev): 120.3000/0.07
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Increased InnoDB buffer space to 2x default (128M) and results were better. It
seems InnoDB is faster, but it requires more memory to be faster. Still doing
some tests and seeing where things could be configured to work faster.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Aris,
I am trying to keep the project going and moving forward to improve it. I do
it in my spare time which is not often, so any help would be appreciated. Let
me know what areas of knowledge you have where you can help. One area would be
compiling the Windows binary package for distribution as I don't work with
Windows that much :)
Jon
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Looking at some simple comparisons to InnoDB to get a gauge of where the
performance bottlenecks are occurring.
These tests are based on a simple server (quad-core 64bit 4GB on single disk).
The first one is read-only comparison.
sysbench --num-threads=8 --test=oltp --oltp-table-size=1000000 --oltp-dist-
type=uniform --oltp-table-name=sbtest --forced-shutdown=1 --max-requests=0
--max-time=120 --mysql-host=127.0.0.1 --mysql-user=root --mysql-port=3306
--mysql-db=sbtest --mysql-table-engine=SOLIDDB --oltp-read-only=on --mysql-
engine-trx=yes run
sysbench 0.4.12: multi-threaded system evaluation benchmark
No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 8
Forcing shutdown in 121 seconds
Doing OLTP test.
Running mixed OLTP test
Doing read-only test
Using Uniform distribution
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Threads started!
Time limit exceeded, exiting...
(last message repeated 7 times)
Done.
OLTP test statistics:
queries performed:
read: 1526868
write: 0
other: 218124
total: 1744992
transactions: 109062 (908.83 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 1526868 (12723.67 per sec.)
other operations: 218124 (1817.67 per sec.)
Test execution summary:
total time: 120.0022s
total number of events: 109062
total time taken by event execution: 959.5918
per-request statistics:
min: 1.51ms
avg: 8.80ms
max: 1536.74ms
approx. 95 percentile: 6.49ms
Threads fairness:
events (avg/stddev): 13632.7500/337.64
execution time (avg/stddev): 119.9490/0.00
root@quadi:/usr/local/src/mysql-5.5.17-soliddb# sysbench --num-threads=8
--test=oltp --oltp-table-size=1000000 --oltp-dist-type=uniform --oltp-table-
name=sbtest_innodb --forced-shutdown=1 --max-requests=0 --max-time=120
--mysql-host=127.0.0.1 --mysql-user=root --mysql-port=3306 --mysql-db=sbtest
--mysql-table-engine=INNODB --oltp-read-only=on run
sysbench 0.4.12: multi-threaded system evaluation benchmark
No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 8
Forcing shutdown in 121 seconds
Doing OLTP test.
Running mixed OLTP test
Doing read-only test
Using Uniform distribution
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Threads started!
Time limit exceeded, exiting...
(last message repeated 7 times)
Done.
OLTP test statistics:
queries performed:
read: 1619380
write: 0
other: 231340
total: 1850720
transactions: 115670 (963.89 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 1619380 (13494.41 per sec.)
other operations: 231340 (1927.77 per sec.)
Test execution summary:
total time: 120.0038s
total number of events: 115670
total time taken by event execution: 959.5311
per-request statistics:
min: 1.50ms
avg: 8.30ms
max: 2842.54ms
approx. 95 percentile: 9.40ms
Threads fairness:
events (avg/stddev): 14458.7500/216.88
execution time (avg/stddev): 119.9414/0.00
So close comparison to start which is not bad considering the lack of
development of SolidDB for the last few years.
It was interesting that after I had to restart my server I thought I would try
the test again on a "fresh" machine. The results were actually quite different
so I ran the tests multiple times for each engine with close the same result
each time.
sysbench --num-threads=8 --test=oltp --oltp-table-size=1000000 --oltp-dist-
type=uniform --oltp-table-name=sbtest --forced-shutdown=1 --max-requests=0
--max-time=120 --mysql-host=127.0.0.1 --mysql-user=root --mysql-port=3306
--mysql-db=sbtest --mysql-table-engine=SOLIDDB --oltp-read-only=on --mysql-
engine-trx=yes run
sysbench 0.4.12: multi-threaded system evaluation benchmark
No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 8
Forcing shutdown in 121 seconds
Doing OLTP test.
Running mixed OLTP test
Doing read-only test
Using Uniform distribution
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Threads started!
Time limit exceeded, exiting...
(last message repeated 7 times)
Done.
OLTP test statistics:
queries performed:
read: 2426620
write: 0
other: 346660
total: 2773280
transactions: 173330 (1444.38 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 2426620 (20221.29 per sec.)
other operations: 346660 (2888.76 per sec.)
Test execution summary:
total time: 120.0032s
total number of events: 173330
total time taken by event execution: 959.4520
per-request statistics:
min: 1.80ms
avg: 5.54ms
max: 40.55ms
approx. 95 percentile: 7.04ms
Threads fairness:
events (avg/stddev): 21666.2500/383.74
execution time (avg/stddev): 119.9315/0.00
sysbench --num-threads=8 --test=oltp --oltp-table-size=1000000 --oltp-dist-
type=uniform --oltp-table-name=sbtest_innodb --forced-shutdown=1 --max-
requests=0 --max-time=120 --mysql-host=127.0.0.1 --mysql-user=root --mysql-
port=3306 --mysql-db=sbtest --mysql-table-engine=INNODB --oltp-read-only=on
--mysql-engine-trx=yes run
sysbench 0.4.12: multi-threaded system evaluation benchmark
No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 8
Forcing shutdown in 121 seconds
Doing OLTP test.
Running mixed OLTP test
Doing read-only test
Using Uniform distribution
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Threads started!
Time limit exceeded, exiting...
(last message repeated 7 times)
Done.
OLTP test statistics:
queries performed:
read: 2088744
write: 0
other: 298392
total: 2387136
transactions: 149196 (1243.24 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 2088744 (17405.37 per sec.)
other operations: 298392 (2486.48 per sec.)
Test execution summary:
total time: 120.0057s
total number of events: 149196
total time taken by event execution: 959.4558
per-request statistics:
min: 1.72ms
avg: 6.43ms
max: 80.76ms
approx. 95 percentile: 9.13ms
Threads fairness:
events (avg/stddev): 18649.5000/148.58
execution time (avg/stddev): 119.9320/0.00
Not the tables have turned and SolidDB is performing at a higher throughput
that InnoDB. I realise this has no specific tuning available for the engines
yet, simply setting the buffer size to be around the recommended size for the
engines, but it is a good starting comparison.
It seems the read/write (RW) test has given a much different comparison in
speed with SolidDB coming out on top!
sysbench --num-threads=8 --test=oltp --oltp-table-size=1000000 --oltp-dist-
type=uniform --oltp-table-name=sbtest --forced-shutdown=1 --max-requests=0
--max-time=120 --mysql-host=127.0.0.1 --mysql-user=root --mysql-port=3306
--mysql-db=sbtest --mysql-table-engine=SOLIDDB --oltp-read-only=off --mysql-
engine-trx=yes run
sysbench 0.4.12: multi-threaded system evaluation benchmark
No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 8
Forcing shutdown in 121 seconds
Doing OLTP test.
Running mixed OLTP test
Using Uniform distribution
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Threads started!
Time limit exceeded, exiting...
(last message repeated 7 times)
Done.
OLTP test statistics:
queries performed:
read: 72380
write: 25794
other: 10323
total: 108497
transactions: 5153 (42.71 per sec.)
deadlocks: 17 (0.14 per sec.)
read/write requests: 98174 (813.75 per sec.)
other operations: 10323 (85.57 per sec.)
Test execution summary:
total time: 120.6441s
total number of events: 5153
total time taken by event execution: 963.0285
per-request statistics:
min: 106.88ms
avg: 186.89ms
max: 9300.04ms
approx. 95 percentile: 264.16ms
Threads fairness:
events (avg/stddev): 644.1250/1.62
execution time (avg/stddev): 120.3786/0.24
sysbench --num-threads=8 --test=oltp --oltp-table-size=1000000 --oltp-dist-
type=uniform --oltp-table-name=sbtest_innodb --forced-shutdown=1 --max-
requests=0 --max-time=120 --mysql-host=127.0.0.1 --mysql-user=root --mysql-
port=3306 --mysql-db=sbtest --mysql-table-engine=INNODB --oltp-read-only=off
--mysql-engine-trx=yes run
sysbench 0.4.12: multi-threaded system evaluation benchmark
No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 8
Forcing shutdown in 121 seconds
Doing OLTP test.
Running mixed OLTP test
Using Uniform distribution
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Threads started!
Time limit exceeded, exiting...
(last message repeated 7 times)
Done.
OLTP test statistics:
queries performed:
read: 33614
write: 12005
other: 4802
total: 50421
transactions: 2401 (19.95 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 45619 (379.11 per sec.)
other operations: 4802 (39.91 per sec.)
Test execution summary:
total time: 120.3313s
total number of events: 2401
total time taken by event execution: 962.4001
per-request statistics:
min: 71.86ms
avg: 400.83ms
max: 2087.14ms
approx. 95 percentile: 1475.68ms
Threads fairness:
events (avg/stddev): 300.1250/2.98
execution time (avg/stddev): 120.3000/0.07
Increased InnoDB buffer space to 2x default (128M) and results were better. It
seems InnoDB is faster, but it requires more memory to be faster. Still doing
some tests and seeing where things could be configured to work faster.
Hi,
Great to see this project live again. Some month ago I do a test/benchmark
with this database, but no luck, database crashed happened.
Do you want continue to maintain this project? What can I do to help you?
-aris
Hi Aris,
I am trying to keep the project going and moving forward to improve it. I do
it in my spare time which is not often, so any help would be appreciated. Let
me know what areas of knowledge you have where you can help. One area would be
compiling the Windows binary package for distribution as I don't work with
Windows that much :)