The scarcity of qualified talent in the IT sector is especially pronounced…
We use exponentially weighted moving averages (EWMAs) quite a bit in a few algorithms. They’re one of the tricks everyone should have in their toolbox for cheaply approximating recent history…
Optimizing MySQL performance requires the ability to inspect production query traffic. If you’re not seeing your application’s production workload, you’re missing a vital part of the picture. In particular, there…
We are excited to announce that we now support monitoring Amazon RDS for MySQL. Previously we relied exclusively on deep packet inspection, but since customers can’t install agents on RDS…
SolarWinds® Database Performance Monitor’s (DPM) SaaS backend is a service-oriented architecture, which means that in addition to our external APIs that our agents and web UI use, we also have…
This is a story of using low-level kernel interfaces to optimize an edge case one of our agents encountered in some servers. The TL;DR version is that accessing /proc/ can…
Here’s a simple question that I wasn’t able to solve with Google or the MySQL documentation (which is normally excellent). Perhaps it’s mentioned somewhere, but I can’t find it. Here’s…
One of our most useful features is Top Queries, which allows users to examine various metrics for families of similar queries. Once a query family is selected, we can drill…
When you send a query to MySQL, you usually don’t need to think explicitly about the types of the expressions in your query. If you compare this to a lot…
While writing our TCP stream reassembly and MySQL protocol reverse-engineering algorithms, a few finer points of the MySQL protocol and internals came up. None of this is new information, but…
Looking back, I find object-oriented programming in languages like Java and C++ to be incredibly confusing. There are so many special rules and things to know. By contrast, Go gives…