Presentation: Experiences building InfluxDB in Go
Duration
Key Takeaways
- Hear our experiences building a time series database in Go
- Lessons migrating from Go 1.4 to 1.5
- Learn key advantages and gotches on developing with Go
Abstract
In this talk I'll cover our experiences building InfluxDB, an open source distributed time series database, in Go. When we started the project in September of 2013 it wasn't totally obvious that Go would become as popular as it has or that we'd be able to make things work. I'll talk about what drove our decision to use Go, what's been really great about developing in the language, and a few of the pains that we've had along the way. I'll also dig into what performance characteristics we've seen in Go 1.4 vs. Go 1.5, which has a new garbage collector.
Interview with Paul Dix
QCon: What is a time series database?
Paul: It’s basically a database where everything is indexed by time. When most people think of a time series database, they are thinking about databases organized around regular time series data (which is samples at fixed intervals of time). But a true time series database should be able to support regular and irregular data. Irregular data is like event data, such as pageviews or user actions in an app or maybe trades in a stock market.
QCon: What made you choose Go?
Paul: I was initially interested in the language. So I spiked with it back in 2012 (over the course of a week), and I was impressed with the performance. We’ve been using it ever since.
QCon: What are some of the things you will speak about in your talk?
Paul: We started with Go in 2012. I will talk about our experiences over that time. I will talk about some of the benefits of Go, such as the community and performance. I will also talk about some of the challenges we’ve had implementing Go. For example, we’ve had a couple of issues that are still outstanding with migrating to 1.5. We actually may need to revert to 1.4, so I will speak about those things.
I will talk quite a bit about dependency management. Dependency management is one of those things over the lifetime of the project that has caused us quite of bit of bugs, so you want to get dependency management right from the start.
Similar Talks
Tracks
Covering innovative topics
Monday Nov 16
-
Architectures You've Always Wondered About
Silicon Valley to Beijing: Exploring some of the world's most intrigiuing architectures
-
Applied Machine Learning
How to start using machine learning and data science in your environment today. Latest and greatest best practices.
-
Browser as a platform (Realizing HTML5)
Exciting new standards like Service Workers, Push Notifications, and WebRTC are making the browser a formidable platform.
-
Modern Languages in Practice
The rise of 21st century languages: Go, Rust, Swift
-
Org Hacking
Our most innovative companies reimagining the org structure
-
Design Thinking
Level up your approach to problem solving and leave everything better than you found it.
Tuesday Nov 17
-
Containers in Practice
Build resilient, reactive systems one service at a time.
-
Architecting for Failure
Your system will fail. Take control before it takes you with it.
-
Modern CS in the Real World
Real-world Industry adoption of modern CS ideas
-
The Amazing Potential of .NET Open Source
From language design in the open to Rx.NET, there is amazing potential in an Open Source .NET
-
Optimizing You
Keeping life in balance is always a challenge. Learning lifehacks
-
Unlearning Performance Myths
Lessons on the reality of performance, scale, and security
Wednesday Nov 18
-
Streaming Data @ Scale
Real-time insights at Cloud Scale & the technologies that make them happen!
-
Taking Java to the Next Level
Modern, lean Java. Focuses on topics that push Java beyond how you currently think about it.
-
The Dark Side of Security
Lessons from your enemies
-
Taming Distributed Architecture
Reactive architectures, CAP, CRDTs, consensus systems in practice
-
JavaScript Everywhere!
Javascript is Everywhere. Learn why
-
Culture Reimagined
Lessons on building highly effective organizations