December 3rd, 2020
The Dark Side of Go: Go’s Runtime Related Problems in TiDB Production Environment
Dongxu (Ed) Huang, Co-founder & CTO at PingCap
Talk Abstract:TiDB is a distributed NewSQL database written in Go from the ground up. As the system becomes more complicated, some problems related to Go’s runtime have emerged when applied in production environments. These problems are typical and profound, covering important areas such as memory management, garbage collection, and goroutine scheduling. In this talk, Ed Huang will introduce specific cases in real production environments and share how they reproduced, located, and analyzed these problems.
Can We Panic Yet? Error Handling in Go
Raphael ‘kena’ Poss, Member of Technical Staff at Cockroach Labs
Talk Abstract:Golang’s “one-size-fits-all” error handling is not a panacea. Alternatives provide good performance, and perhaps more surprisingly, are actually cheaper from a software engineering perspective.
In this talk, we will dive into the Go calling convention and quantify experimentally the mandatory performance overhead of Go’s return value handling, as well as that of handling Go’s panics, a variant of exceptions found in other languages. There is a surprising inflection point with regard to performance between error returns and panic-based exceptions to signal errors, which challenges the programming idioms recommended by the Go team. In fact, we will see how panic-based exceptions can not only improve performance, but generally improve code quality and reduce software engineering costs. These insights will be illustrated through the software patterns found in a major open source project written in Go, CockroachDB.
Finding a Needle in Haystacks and Chaotic Systems!
Emmanuel Odeke, Founder of Orijtech
Talk Abstract:Building high performance systems can either be made or broken by the lack of high quality and proactive tools. Unfortunately, even today in the age of cloud computing, we still suffer from issues related to lack of good observability to determine the internal states; our tools require very expensive and highly skilled engineers, yet the available tools still have a high cognitive overload and aren’t proactive. In this talk, I’ll show how to find needles in haystacks in common scenarios that you’ve most definitely encountered, but perhaps hadn’t been able to successfully debug without the right tools, or perhaps hadn’t noticed!