The Rise of Open Source Time Series Databases
Time series databases are essential tools in any software engineer’s toolbelt. Their development has been shaped by user needs and countless open source contributors, leading to the healthy ecosystem of options we see today. In this article, you’ll see how time series databases came about, and why so many are open source.
Go sync.WaitGroup and The Alignment Problem
When we’re spinning off many goroutines to do their thing, we want to keep track of them so that the main goroutine doesn’t just finish up and exit before everyone else is done. That’s where the WaitGroup comes in. Each time one of our goroutines wraps up its task, it lets the WaitGroup know.
Community Question: High Churn Rate Without New Time Series?
My VictoriaMetrics cluster has a very high churn rate at 0:00 every day. However, when I enable -logNewSeries
, I find that these ’new’ time series were actually seen before. Why is this happening?
Slices in Go: Grow Big or Go Home
Slices are way more flexible than arrays since they’re basically a layer on top of an array. They can resize dynamically, and you can use append()
to add more elements.
Open Source Software Licenses vs Revenue Growth Rates
A software license change may have a short term impact on revenue, but the long-term damage can be consequential and take time to fix. Read our CTO’s take on open source software licenses vs revenue growth rates.
Go sync.Pool and the Mechanics Behind It
Instead of just throwing these objects after each use, which would only give the garbage collector more work, we stash them in a pool (sync.Pool
). The next time we need something similar, we just grab it from the pool instead of making a new one from scratch.
VictoriaMetrics Cloud reduces monitoring costs by 5x
We’re happy to announce VictoriaMetrics Cloud, a hosted monitoring platform and managed service for metrics that allows organizations to monitor and store large amounts of time-series data, without having to run the underlying infrastructure.
Go Maps Explained: How Key-Value Pairs Are Actually Stored
Map is a built-in type that acts as a key-value storage. Unlike arrays where you’re stuck with keys as increasing indices like 0, 1, 2, and so on, with maps, the key can be any comparable type.
Troubleshooting Time Series Databases: Where Did My Metrics Go?
I have already recorded metrics in the application, why can’t I see my metrics on Grafana?
Go sync.Mutex: Normal and Starvation Mode
Mutex in Go has two main flows: Lock and Unlock and 2 modes: Normal and Starvation Mode. The state field of mutex is a 32-bit integer that represents the current state, it’s divided into multiple bits that encode various pieces of information about the mutex.