In February of this year, I announced that Dolt releases are now built as profile-guided optimized (pgo) binaries, levering this powerful feature of G

Golang PGO builds using GitHub Actions

submited by
Style Pass
2024-04-18 18:30:02

In February of this year, I announced that Dolt releases are now built as profile-guided optimized (pgo) binaries, levering this powerful feature of Golang 1.20 to increase Dolt's read performance by 5.3%.

Prior to my announcement, Zach, one of our resident Golang experts, experimented and tested Golang's pgo feature and wrote about the performance gains he observed in Dolt after building it with profiles created while running our Sysbench benchmarking tests against it first. From there, we knew we had to get those performance gains into our released binaries, so we retooled Dolt's release process to build pgo releases.

Today, I'll cover Dolt's general release process, which uses GitHub Actions, and I'll breakdown all phases of our release process. I'll also go over what we changed in our process to start releasing pgo builds. Hopefully this will allow you to glean some insights you can use for working pgo builds into your own Golang releases!

GitHub Actions uses files called workflows to define jobs that it will do the work defined in the workflow file. These jobs are deployed to runners, or host machines, that you can either host yourself or allow GitHub to host for you.

Leave a Comment