From the article
VictoriaMetrics Observability Blog
Phuong Le
- Adam Yates
- Aditya Kulkarni
- Adrian Bridgwater
- Agustín Gallego
- Alex Woodie
- Alexander Marshalov
- Aliaksandr Valialkin
- Aman Agarwal
- Antony Savvas
- Artem Navoiev
- Bill Tanner
- Cer6erus
- Claudio Masolo
- David Marshall
- Denys Holius
- Derek Foster
- Diana Todea
- Dima Lazerka
- Dmytro Kozlov
- Emily Foster
- Fintech Herald
- Fred Navruzov
- Gary Flood
- Gonzalo García Labat
- Ivan Yatskevich
- Jaime Hampton
- Jan Sokol
- Jason Bloomberg
- Jason English
- Jean-Jerome Schmidt-Soisson
- Jesús Espino
- Joab Jackson
- John Seekins
- Jose Gomez-Selles
- Julien Menan
- Karan Virdi
- Laveesh Kocher
- Leigh McGowran
- Lindsay Clark
- Marc Sherwood
- Mark Baker
- Martijn Van Best
- Martin Veitch
- Mathias Palmersheim
- Michelle Sebek
- Nick Gibson
- Nikolay Khramchikhin
- Pablo Fernandez
- Phuong Le
- Rafal Szypulka
- Renato Losio
- Richard Speed
- Roman Khavronenko
- Vadim Alekseev
- Vadim Rutkovsky
- Yurii Kravets
- Zakhar Bessarab
- Zhu Jiekun
No matching authors found.
Category
- Benchmark
- Community
- Company News
- Customer Stories
- Developer Experience
- Distributed Tracing
- Events
- Go
- Go @ VictoriaMetrics
- High Cardinality
- Kubernetes
- Monitoring
- Observability
- Open Source Tech
- OpenTelemetry
- OTLP
- Performance
- PostgreSQL
- Product News
- Tech Talk
- Time Series Database
- VictoriaLogs
- VictoriaMetrics
- VictoriaTraces
No matching categories found.
Filter: Phuong Le
Go I/O Closer, Seeker, WriterTo, and ReaderFrom
Still, we haven’t really covered some other important interfaces, like Closer, Seeker, and a few others. And honestly, if you’re learning Go, you probably don’t want to leave those in the blind spot.
Go I/O Readers, Writers, and Data in Motion
The io.Reader and io.Writer interfaces are probably some of the most common tools. Today, we’re kicking off the I/O series by taking a look at a lot of these readers and writers, and pointing out some common mistakes — like using io.ReadAll in ways that can backfire.
Go sync.Map: The Right Tool for the Right Job
Go’s sync.Map isn’t a magic bullet for all concurrent map needs. It’s got some good tricks up its sleeve, like handling reads without locking, but it’s not always the best choice. This article dives into how sync.Map works under the hood, from its two-map system to the bottom line of expunged entries.
Inside Go's Unique Package: String Interning Simplified
When you’ve got several identical values in your code, you only store one copy. Instead of having several copies of the same thing, they all just point to this one version, which is a lot more efficient. It’s a process often called ‘interning’ in programming circles.
Go Singleflight Melts in Your Code, Not in Your DB
What singleflight does is ensure that only one of those goroutines actually runs the operation, like getting the data from the database. It allows only one ‘in-flight’ (ongoing) operation for the same piece of data (known as a ‘key’) at any given moment.
Go sync.Cond, the Most Overlooked Sync Mechanism
In Go, sync.Cond is a synchronization primitive, though it’s not as commonly used as its siblings like sync.Mutex or sync.WaitGroup. That said, as a Go engineer, you don’t really want to find yourself reading through code that uses sync.Cond and not have a clue what’s going on.
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.
Slices in Go: Grow Big or Go Home
Go sync.Pool and the Mechanics Behind It
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.