Dolt is the world's first SQL database with
Git-style version control. We spent the first part of 2022 working on
our performance, in large part by re-writing the storage engine. In
October, we were lucky enough to be invited to speak about this work
at GopherCon, the largest gathering for
Golang developers, in Chicago.
If you've never been to a big tech conference before, it's a spectacle
worth seeing, as long as you can get your employer to pay for
it. DoltHub is a frugal shop, which means we only pay for conferences
if we're speaking at them, so this was the first one I had attended in
a long time.
It's pretty fun to be in an environment filled with so many other
enthusiastic fans of a technology you work with. And where there are
fans of a technology, there are companies (like ours) trying to sell
them things. SaaS booths are a great opportunity to score some free
tchotchkes, like these adorable gopher stuffies I gave to my
The people who staff these booths generally are pretty interesting and
enjoy talking to potential customers -- or even competitors, like the
But the exhibition hall is really a sideshow. Most people, myself
included, come to conferences like this for the talks. Like mine!
Not quite seeing my name in lights, but the next best thing.
GopherCon 2022 had some really interesting talks. Gopher
Academy, who produces the
conference, has been releasing the videos of the talks about once a
week, so subscribe to their channel for a steady stream of golang
My talk was about how to use the golang performance profiler tools,
and how we re-architected our storage layer to get better
performance. I previously published part of the talk's content as a
blog post which you should read if you're interested in learning some
specific details about golang
talk is called "Performance in a High-throughput SQL Database:
Real-world Profiler Tips", and you can watch it below.
Of course there were a lot of other talks than just mine. Here are
some that I found interesting (and that are available to watch at the
time of this writing).
Russ Cox from the Go team at Google gave a very informative run-down
on Go's promise of backwards compatibility and the techniques they use
to continue evolving the language without breaking existing programs.
Donia Chaiehloudj presented a very charming case study about using
TinyGo (a version of go that fits well on microprocessors) to monitor
the humidity in her henhouse. It's called "Getting the Upper Hen",
and that's just one of many chicken-related puns included in her talk.
Takeshi Yoneda traveled all the way from Tokyo to present his work on
running WebAssembly code from inside the golang runtime, which is an
alternative to the issues with CGO. This was interesting to us in the
context of embedded Dolt, e.g. Dolt running in a browser.
Katie Hockman taught the crowd how to use go's built-in fuzz testing
features to get better correctness assurances. We've done our own
form of fuzz
to find bugs in Dolt, and this framework could help make this easier.
Finally, Zach Wasserman of Fleet discussed an architecture that
enables them to collect performance profile dumps from their customers
to more effectively debug performance issues in the wild. This is a
fantastic idea that we plan to integrate into future releases of Dolt.
There are a bunch of other interesting talks that haven't been
published yet, so subscribe to the YouTube channel if this stuff
GopherCon was a great time, and it was nice to connect with some other
developers in the golang community. We'll be taking part in other
conferences in the future, so watch this blog for updates.
Like the talk? Have some comments about it, or questions about Dolt?
Join us on Discord to talk to
our engineering team and meet other customers.