Optimization tales with CockroachDB: the slow list of users (part 4)
Optimizing a slow CockroachDB query listing users with SELECT DISTINCT, investigating performance issues.
Philippe Gaultier is a software engineer and technical writer specializing in Go and C++. He focuses on debugging, concurrency, DTrace, and identifying subtle bugs and performance issues in complex applications.
54 articles from this blog
Optimizing a slow CockroachDB query listing users with SELECT DISTINCT, investigating performance issues.
Investigating and fixing a slow CockroachDB pagination query that reads millions of rows but only returns 100.
A technical deep dive into optimizing a slow SQL logout query in CockroachDB, reducing retries and improving performance.
Optimizing a slow password reset query in CockroachDB, reducing row reads from 700k to 10.
How to speed up test suites by avoiding SQL migrations in tests, achieving a 2x performance boost.
Explains how to use DTrace to detect data races in concurrent programs, with examples in Go and C.
A developer shares lessons learned from building a custom, high-performance static site generator, covering parsing, performance, and features.
Explains the subtle but important difference between `let _ = ...` and `let _unused = ...` in Rust, using a live-reloading example.
A developer shares a subtle shell scripting pitfall involving function name conflicts and infinite recursion, with comparisons to Rust and Go.
A developer recounts a production C++ bug caused by undefined behavior, explaining how uninitialized struct members led to a critical API error.
A technical guide on using DTrace to detect and analyze goroutine leaks in Go programs, including practical examples and script.
Using DTrace to dynamically list all HTTP routes registered in a Go application, useful for debugging and understanding runtime features.
A technical article exploring common and subtle causes of data races in Go programs, with real-world examples and fixes.
A technical guide on reproducing and fixing an I/O data race in Go using DTrace, including a minimal code reproducer and analysis.
A technical guide on using DTrace to inspect encrypted and compressed network traffic in Go programs for debugging purposes.
Using DTrace to determine if SQL files are accessed at build time or runtime in a Go application, focusing on I/O tracing.
Learn how to use DTrace to monitor and inspect live SQL queries, including their arguments, from a running Go application without code changes.
A look at a subtle bug in a Go test where a for loop iterates over an empty slice, and how static analysis tools miss it.
A developer investigates a subtle bug in Go's errgroup package, explaining the issue and providing a fix.
A developer shares a detailed debugging journey using Go profiling and DTrace to uncover and fix a performance bottleneck in a test suite.