Michael presented the paper Understanding Real-World Concurrency Bugs in Go, which compares bug classes by analyzing popular open source projects like BoltDB, etcd, Docker and Kubernetes. Did you know that some concurrency bugs stay undetected for months, even years? While message passing does not make multithreaded programs less-error prone, it can still offer a clean form of inter-thread communication.
Staying on the topic of concurrency, we reviewed a classic, concurrent producer-consumer problem, translated into Go by Michael. In less than 150 lines of code is it possible to write an auto-scaling worker-pool with retries that is using Redis as backing store. An alternative to spawning goroutines for every task is to feed a fixed number of workers through a channel (where work is distributed round-robin to workers). Both designs work, but we were unsure about some performance implications - we’ll briefly report on new findings at the next meetup.
Changes to the language
There are no changes to the language specification.
Thanks for dropping by!
- Lightning Talk Slides
- Understanding Real-World Concurrency Bugs in Go (2019)
- Book recommendation: Concurrency in Go (2017)
- Go package management - we plan to have a Go modules deep dive at the April 2019 meetup.
- Meeting forms: lean coffee.
- Video: GOTO 2018 • Old Is the New New • Kevlin Henney (2018) - Fundamentals.
- Channel: computerphile - Videos all about computers and computer stuff. Sister channel of Numberphile.
Now defunkt company Basho, creators of database technology (RIAK) had a format, similar to papers we love, but their video recordings seem to be lost. If you have happen to have a copy, please consider contacting us :)