Announcing Dolt PGO Builds
In a recent blog post Zach demonstrated that building Dolt using Golang's Profile-Guided Optimization (PGO) improved benchmarking performance by 5%.
Today we're excited to announce that Dolt releases, starting with v1.32.4
, are now built using PGO!
After Zach demonstrated that PGO builds are actually worthwhile to create, we couldn't leave that free 5% performance improvement on the table.
So, we restructured Dolt's release process so that it generates a new pprof
profile, created while benchmarking the Dolt release candidate with sysbench. We then use that profile to build the official Dolt release.
Here are the results from our inaugural PGO release that compares non-PGO v1.34.1
to the PGO v1.34.2
build:
Read Tests | Dolt 1.34.1 | Dolt 1.34.2 | % Faster |
---|---|---|---|
covering_index_scan | 2.91 | 2.81 | 3.6 |
groupby_scan | 18.28 | 17.01 | 7.5 |
index_join | 5.18 | 4.91 | 5.5 |
index_join_scan | 2.22 | 2.14 | 3.7 |
index_scan | 63.32 | 57.87 | 9.4 |
oltp_point_select | 0.47 | 0.46 | 2.2 |
oltp_read_only | 8.13 | 8.13 | 0.0 |
select_random_points | 0.77 | 0.77 | 0.0 |
select_random_ranges | 0.92 | 0.87 | 5.7 |
table_scan | 63.32 | 57.87 | 9.4 |
types_table_scan | 173.58 | 155.8 | 11.4 |
Write Tests | Dolt 1.34.1 | Dolt 1.34.2 | % Faster |
---|---|---|---|
oltp_delete_insert | 6.09 | 5.99 | 1.7 |
oltp_insert | 2.97 | 3.02 | -1.7 |
oltp_read_write | 15.55 | 15.27 | 1.8 |
oltp_update_index | 3.13 | 3.07 | 1.9 |
oltp_update_non_index | 3.02 | 3.02 | 0.0 |
oltp_write_only | 7.43 | 7.43 | 0.0 |
types_delete_insert | 6.79 | 6.67 | 1.8 |
TPC-C TPS Tests | Dolt 1.34.1 (TPS) | Dolt 1.34.2 (TPS) | % More |
---|---|---|---|
tpcc-scale-factor-1 | 13.51 | 15.5 | 14.7 |
As you can see from the tables above, Dolt saw great performance improvements on the read tests, boasting an overall 5.3% read speed up.
Dolt also improved slightly on writes, an overall .78% speed up, although one test was slower by 1.7%.
PGO built Dolt also increased its transactional throughput by almost 15%, as measure by our TPC-C benchmarks!
Conclusion
If you haven't yet done so, we encourage you to try out PGO builds yourself and let us know if you see the same benefits we've seen with Dolt!
You can check out each of our different product offerings below, to find which ones are right for you:
- Dolt—it's Git for data.
- DoltHub—it's GitHub for data.
- DoltLab—it's GitLab for data.
- Hosted Dolt—it's RDS for Dolt databases.