Latency#
Latency and Throughput#
Our approach to SQL performance benchmarking is to use sysbench, an
industry standard benchmarking tool. We also benchmark Dolt using
TPC-C, an industry standard transactional
throughput metric.
Performance Roadmap#
Dolt is slightly faster than MySQL on the sysbench test suite, approximately 10%
faster on writes and 5% slower on reads. The multiple column represents this
relationship with regard to a particular benchmark.
Dolt gets about 40% of the transactional throughput on TPC-C than MySQL, 40 transactions per second versus about 100 for MySQL. Most applications are not sensitive to transactional throughput beyond a handful per second.
It’s important recognize that these are industry standard tests, and are OLTP-oriented. Performance results may vary but Dolt is generally competitive on latency with MySQL and Postgres.
Benchmark Data#
Below are the results of running sysbench MySQL tests against Dolt
SQL Server for the most recent release of Dolt in the current default
storage format. We will update this with every release. The tests
attempt to run as many queries as possible in a fixed 2 minute time
window. The Dolt and MySQL columns show the median latency in
milliseconds (ms) of each query during that 2 minute time window.
The Dolt version is 2.0.2.
| Read Tests | MySQL | Dolt | Multiple |
|---|---|---|---|
| covering_index_scan | 1.93 | 0.55 | 0.28 |
| groupby_scan | 13.7 | 9.91 | 0.72 |
| index_join | 1.52 | 1.82 | 1.2 |
| index_join_scan | 1.47 | 1.34 | 0.91 |
| index_scan | 34.33 | 22.28 | 0.65 |
| oltp_point_select | 0.2 | 0.25 | 1.25 |
| oltp_read_only | 3.82 | 5.0 | 1.31 |
| select_random_points | 0.35 | 0.5 | 1.43 |
| select_random_ranges | 0.39 | 0.55 | 1.41 |
| table_scan | 34.95 | 22.28 | 0.64 |
| types_table_scan | 77.19 | 47.47 | 0.61 |
| reads_mean_multiplier | 0.95 |
| Write Tests | MySQL | Dolt | Multiple |
|---|---|---|---|
| oltp_delete_insert | 8.43 | 6.32 | 0.75 |
| oltp_insert | 4.18 | 3.07 | 0.73 |
| oltp_read_write | 9.22 | 10.84 | 1.18 |
| oltp_update_index | 4.25 | 3.13 | 0.74 |
| oltp_update_non_index | 4.18 | 2.97 | 0.71 |
| oltp_write_only | 5.28 | 5.77 | 1.09 |
| types_delete_insert | 8.58 | 6.55 | 0.76 |
| writes_mean_multiplier | 0.85 |
| TPC-C TPS Tests | MySQL | Dolt | Multiple |
|---|---|---|---|
| tpcc-scale-factor-1 | 92.64 | 49.99 | 1.85 |
| tpcc_tps_multiplier | 1.85 |
| Overall Mean Multiple | 1.22 |
|---|