Dolt is the world’s first version-controlled relational database. It’s as if MySQL and Git had a baby; with Dolt you can branch, fork, clone, merge, and diff your relational data. Over the course of several years, we’ve been hard at work bringing down our sysbench numbers. Now, 5 years later, we have finally reached parity with MySQL!

Here’s a graph of our progress over the years.

This illustrates the mean read and mean write latency multiples of Dolt against MySQL. Early on, our benchmarks and performance were pretty erratic, but eventually we found our groove.
Here are our most recent read/write latency results:
| benchmark | mysql_latency | dolt_latency | mult |
|---|---|---|---|
| covering_index_scan | 1.86 | 0.55 | 0.3 |
| groupby_scan | 13.7 | 11.87 | 0.87 |
| index_join | 1.5 | 1.93 | 1.29 |
| index_join_scan | 1.47 | 1.34 | 0.91 |
| index_scan | 34.33 | 22.69 | 0.66 |
| oltp_point_select | 0.2 | 0.27 | 1.35 |
| oltp_read_only | 38.2 | 5.28 | 1.38 |
| select_random_points | 0.35 | 0.58 | 1.66 |
| select_random_ranges | 0.39 | 0.57 | 1.46 |
| table_scan | 34.95 | 28.16 | 0.81 |
| types_table_scan | 75.82 | 65.65 | 0.87 |
| oltp_delete_insert | 8.43 | 6.43 | 0.76 |
| oltp_insert | 4.18 | 3.19 | 0.76 |
| oltp_read_write | 9.22 | 11.65 | 1.26 |
| oltp_update_index | 4.25 | 3.25 | 0.76 |
| oltp_update_non_index | 4.18 | 3.19 | 0.76 |
| oltp_write_only | 5.28 | 6.32 | 1.2 |
| types_delete_insert | 8.43 | 6.91 | 0.82 |
| overall_mean_read_write_mult | 0.99 |
Conclusion#
Dolt is a version-controlled database that performs (on average) just as well as MySQL on Sysbench. This doesn’t end here though; we can always go faster, and we need to prevent performance regressions. Try out Dolt yourself, and feel free to file any performance issues. If you just want to chat, feel free to join our Discord.
