DoltHub goes to GopherCon

TECHNICAL
3 min read

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.

gopher con

The conference

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.

gopher con

gopher con

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 daughters.

gopher con

The people who staff these booths generally are pretty interesting and enjoy talking to potential customers -- or even competitors, like the Cockroach guys.

gopher con

But the exhibition hall is really a sideshow. Most people, myself included, come to conferences like this for the talks. Like mine!

gopher con

Not quite seeing my name in lights, but the next best thing.

The talks

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 talks.

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 performance. The 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 testing 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 interests you.

Conclusion

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.

SHARE

JOIN THE DATA EVOLUTION

Get started with Dolt

Or join our mailing list to get product updates.