Tech’s Most Wanted: A Profile of the Cybersecurity Professional

The scarcity of qualified talent in the IT sector is especially pronounced…

Latest Posts

How Exponentially Weighted Moving Averages Work

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…

Analyzing Prepared Statement Performance

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…

SolarWinds Database Performance Monitor Now Supports Amazon RDS For MySQL

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…

Inside Distributed Architectures: RT In-Flight Requests And Blockers

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…

Using Netlink to Optimize Socket Statistics

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…

What Privileges Does EXPLAIN Require in MySQL?

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…

Prepared Statement Samples

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…

MySQL Type Conversion Rules

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…

4 Things To Know About MySQL Prepared Statements

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…

Composition Instead of Inheritance in Go

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…